Пошаговое руководство. Развертывание веб-приложения ASP.NET с помощью XCOPY

Visual Studio 2010

Обновлен: Ноябрь 2007

Развертывание приложений ASP.NET является прямым действием. Необходимо скопировать файлы приложения, созданные на компьютере разработчика, на конечный веб-сервер, на котором будет размещено приложение. Для копирования файлов из одного расположения в другое можно использовать служебную программу командной строки XCOPY или любое приложение для работы с FTP. Дополнительные сведения об общем развертывании см. в разделе Основы развертывания .NET Framework.

f735abw9.alert_note(ru-ru,VS.100).gifПримечание.

В качестве альтернативы использованию средства командной строки XCOPY, которое поддерживается всеми версиями платформы .NET Framework, для компиляции и развертывания веб-приложения можно использовать новое средство платформы .NET Framework 2.0, размещенное в каталоге %SystemRoot%\Microsoft.NET\Framework\версия 2 или более поздняя\Aspnet_compiler.exe. Дополнительные сведения см. в разделе Программа компиляции для ASP.NET (Aspnet_compiler.exe).

Сборки, которые будут использоваться совместно с другими веб-приложениями, например те, в которых содержатся пользовательские серверные элементы управления ASP.NET, необходимо развернуть в глобальный кэш сборок на удаленном сервере.

Если выполняется развертывание приложения, содержащего ссылку на пользовательский компонент, зарегистрированный в глобальном кэше сборок на локальном сервере, этот компонент не будет развернут вместе с приложением на удаленный сервер. Необходимо установить этот компонент в глобальный кэш сборок на удаленном сервере или можно скопировать пользовательский компонент в папку Bin локального веб-приложения перед развертыванием.

Дополнительные сведения см. в разделе Глобальный кэш сборок. Дополнительные сведения о сборках см. в разделе Программирование с использованием сборок.

Некоторые средства развертывания, такие как Visual Web Developer, содержат инструменты, которые упрощают развертывание приложений. Дополнительные сведения см. в разделах Пошаговое руководство. Публикация веб-узла и Пошаговое руководство. Развертывание проекта веб-сайта с помощью средства публикации веб-сайтов.

Для выполнения этого пошагового руководства потребуются следующие компоненты:

  • Платформа .NET Framework.

  • Существующий веб-узел ASP.NET. Если уже имеется такой настроенный узел, можно использовать его в качестве отправной точки в этом пошаговом руководстве. В противном случае, см. подробные сведения о создании виртуального каталога или узла в разделе Практическое руководство. Создание и настройка виртуальных каталогов в IIS 5.0 и 6.0.

  • Конечная папка, доступная с использованием пути файла или UNC-пути.

f735abw9.alert_note(ru-ru,VS.100).gifПримечание.

В этом пошаговом руководстве не предполагается использование конструктора, такого как Visual Web Developer или Visual Studio.

Используйте эти процедуры, если выполняется развертывание крупного веб-узла и нужно перевести целевой веб-узел в автономный режим во время копирования файлов.

Перевод веб-приложения в автономный режим перед развертыванием

  1. Создайте файл с именем App_offline.htm и поместите его в корень целевого веб-узла.

  2. Поместите понятное сообщение в файле App_offline.htm, чтобы клиенты могли знать, что выполняется обновление веб-узла.

    Во время существования файла App_offline.htm все запросы к веб-узлу перенаправляются на этот файл.

    f735abw9.alert_caution(ru-ru,VS.100).gifВажное примечание.

    Не забудьте удалить файл App_offline.htm после завершения копирования файлов.

При изменении каких-либо типов файлов или папок домен приложения перезагружается. Можно указать время в секундах, в течение которого приложение будет ожидать уведомления об изменении другого файла перед перезагрузкой домена приложения.

Снижение числа перезагрузок домена приложения

  1. Откройте файл Web.config веб-приложения. Если файл Web.config отсутствует, его можно создать с помощью следующего кода.

    <?xml version="1.0"?>
    <configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
      <system.web>
      </system.web>
    </configuration>
    

    Дополнительные сведения см. в разделе Файлы конфигурации ASP.NET.

  2. Добавьте элемент Элемент httpRuntime (схема параметров ASP.NET) в файл Web.config и задайте для атрибута waitChangeNotification любое время в секундах, которое больше времени между двумя уведомлениями об изменении при копировании файлов. Например, элемент httpRuntime может выглядеть, как следующий код.

    <?xml version="1.0"?>
    <configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
      <system.web>
        <httpRuntime       waitChangeNotification="5"    />
      </system.web>
    </configuration>
    
  3. Добавьте атрибут maxWaitChangeNotification к элементу httpRuntime и задайте для него максимальное число секунд для ожидания уведомления об изменении первого файла перед перезагрузкой домена приложения. Установите число, которое превышает время выполнения процесса копирования любого файла. Уведомления об изменении файлов объединяются на основании значения этого атрибута и атрибута waitChangeNotification. Например, элемент httpRuntime может выглядеть, как следующий код.

    <?xml version="1.0"?>
    <configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
      <system.web>
        <httpRuntime 
          waitChangeNotification="5"
          maxWaitChangeNotification="10"
        />
      </system.web>
    </configuration>
    

Развертывание веб-приложения ASP.NET с помощью XCOPY из командной строки

  1. В меню Пуск выберите Выполнить.

  2. В поле Открыть диалогового окна Выполнить введите cmd , а затем нажмите кнопку ОК.

  3. В командной строке введите следующую команду:

    xcopy /I /S<source path> <destination path>
    

    В этой команде <source path> является полным путем веб-приложения и <destination path> — полным путем каталога, в который будет развернуто приложение.

    f735abw9.alert_note(ru-ru,VS.100).gifПримечание.

    При работе со средством XCOPY необходимо использовать имена физических каталогов. Нельзя использовать имена виртуальных каталогов.

    Параметр /S копирует все подкаталоги и файлы, которые в них содержатся.

    Параметр /I указывает, что выполняется копирование каталога. Если папка назначения отсутствует, XCOPY создаст ее.

    В следующем примере команда копирует все файлы из каталога c:\inetpub\wwwroot\devapp в каталог d:\publicsites\liveapp.

    Xcopy /I /Sc:\inetpub\wwwroot\devapp d:\publicsites\liveapp
    
  4. Выполнение команды может быть приостановлено с последующим запросом, например: «Переопределить имя_файла (Да/Нет/Все)?», на который нужно ввести ответ.

    Из операции копирования можно исключать вложенные каталоги, файлы с определенными именами или расширениями с помощью параметра XCOPY /EXCLUDE. Дополнительные сведения и параметры см. в разделе Xcopy в окне Справка и поддержка, которое доступно в меню Пуск или с помощью команды xcopy /?, введенной в командной строке.

Развертывание и обновление отдельных файлов в приложении ASP.NET из командной строки

  1. В меню Пуск выберите Выполнить.

  2. В поле Открыть диалогового окна Выполнить введите cmd , а затем нажмите кнопку ОК.

  3. В командной строке введите следующую команду:

    xcopy <source path> <destination path>
    

    В этой команде <source path> — полный путь к исходному файлу, который требуется скопировать, и <destination path> — полный путь к каталогу, в котором будет помещен скопированный файл.

    В следующем примере командная строка выполняет копирование одного файла DLL из каталога \Bin одного диска в каталог \Bin другого диска.

    Xcopy c:\inetpub\wwwroot\devapp\bin\sampleAssembly.dll d:\publicsites\liveapp\bin
    

    В следующем примере командная строка копирует все файлы DLL из каталога Bin на одном диске в каталог Bin на другом диске.

    Xcopy c:\inetpub\wwwroot\devapp\bin\*.dll d:\publicsites\liveapp\bin
    
  4. Выполнение команды может быть приостановлено с последующим запросом, например: «Переопределить имя_файла (Да/Нет/Все)?», на который нужно ввести ответ.

Показ: