Получение параметров публикации из IIS и импорт в Visual Studio
Вы можете использовать средство публикации для импорта параметров публикации, а затем развернуть приложение. В этой статье мы используем параметры публикации для IIS.
Эти действия применимы к веб-приложениям ASP.NET и ASP.NET Core.
Примечание.
Файл параметров публикации (*.publishsettings) отличается от профиля публикации (*.pubxml). Файл параметров публикации создается в IIS, после чего его можно импортировать в Visual Studio. Visual Studio создает профиль публикации.
Необходимые компоненты
Необходимо установить Visual Studio с рабочей нагрузкой разработки веб-приложений и ASP.NET. Если вы уже установили Visual Studio:
- Установите последние обновления для Visual Studio, выбрав Справка>Проверить обновления.
- Добавьте рабочую нагрузку, выбрав Инструменты>Получить средства и компоненты.
На сервере необходимо запустить Windows Server 2012 или более поздней версии, и необходимо правильно установить роль веб-сервера IIS (требуется для создания файла параметров публикации (*.publishsettings)). Также требуется установить на сервере ASP.NET 4.5 или ASP.NET Core. Действия, описанные в этом руководстве, были протестированы в Windows Server 2022.
Для настройки ASP.NET Core см. раздел Размещение ASP.NET Core в Windows со службами IIS. Для ASP.NET Core убедитесь, что в пуле приложений настроен параметр использования Без управляемого кода, как описывается в статье.
Для настройки ASP.NET 4.5 см. раздел IIS 8.0 — использование ASP.NET 3.5 и ASP.NET 4.5.
Примечание.
Службы IIS в Windows не поддерживают создание параметров публикации. Однако вы по-прежнему можете публиковать в службах IIS с помощью средства публикации в Visual Studio.
Установка и настройка веб-развертывания в Windows Server
Веб-развертывание обеспечивает дополнительные возможности конфигурации, позволяющие создавать файл параметров публикации из пользовательского интерфейса.
Примечание.
1 июля 2022 г. завершился жизненный цикл установщика веб-платформы. Дополнительные сведения см. в разделе Установщик веб-платформы — прекращение поддержки и прекращение использования веб-канала продуктов/приложений. Вы можете напрямую установить веб-развертывание 4.0, чтобы создать файл параметров публикации.
Если вы еще не установили сценарии и средства управления IIS, сделайте это на данном этапе.
Перейдите в раздел Выбор ролей сервера>Веб-сервер (IIS)>Средства управления, после чего выберите роль Сценарии и средства управления IIS, нажмите кнопку Далее и выполните установку роли.
Эти сценарии и средства необходимы для создания файла параметров публикации.
Убедитесь, что также установлены Служба управления и Консоль управления IIS (возможно, они уже установлены).
В Windows Server скачайте веб-развертывание 4.0.
Запустите программу установки веб-развертывания и убедитесь, что выбрана полная, а не обычная установка.
После полной установки вы получите компоненты, необходимые для создания файла параметров публикации. (Если вместо полной выбрать пользовательскую установку, вы увидите список компонентов, как на иллюстрации ниже.)
(Необязательный шаг.) Проверьте работоспособность веб-развертывания. Для этого выберите Панель управления > Система и безопасность > Администрирование > Службы и проверьте следующее:
служба агента веб-развертывания запущена (в прежних версиях название этой службы отличалось);
служба веб-управления запущена.
Если какая-то из этих служб агента не запущена, перезапустите службу агента веб-развертывания.
Если служба агента веб-развертывания отсутствует, выберите Панель управления > Программы > Удаление программы и найдите средство Microsoft Web Deploy <версия>. Нажмите Изменить и выберите параметр Будет установлен на локальный жесткий диск для компонентов Web Deploy. Выполните оставшиеся шаги по установке.
Создание файла параметров публикации в IIS в Windows Server
Закройте и снова откройте консоль управления IIS, чтобы отобразить обновленные параметры конфигурации в пользовательском интерфейсе.
В службах IIS щелкните правой кнопкой мыши элемент Веб-сайт по умолчанию и выберите Развернуть>Включить публикацию веб-развертывания.
Если меню Развернуть не отображается, ознакомьтесь с предыдущим разделом, чтобы проверить, выполняется ли веб-развертывание.
Просмотрите параметры в диалоговом окне Включить публикацию веб-развертывания.
Щелкните Настройка.
Выходные данные в панели Результаты показывают, что права доступа предоставлены конкретному пользователю, а в указанном в диалоговом окне месте был создан файл с расширением .publishsettings.
<?xml version="1.0" encoding="utf-8"?> <publishData> <publishProfile publishUrl="https://myhostname:8172/msdeploy.axd" msdeploySite="Default Web Site" destinationAppUrl="http://myhostname:80/" profileName="Default Settings" publishMethod="MSDeploy" userName="myhostname\myusername" /> </publishData>
В зависимости от конфигурации Windows Server и служб IIS в XML-файле будут представлены разные значения. Ниже описываются некоторые значения, которые могут вам встретиться.
Файл msdeploy.axd, на который ссылается атрибут
publishUrl
, представляет собой динамически создаваемый файл обработчика HTTP для веб-развертывания. (В целях тестирования, как правило, можно использоватьhttp://myhostname:8172
.)Порту
publishUrl
присваивается значение 8172, которое по умолчанию используется для веб-развертывания.Порту
destinationAppUrl
присваивается значение 80, которое по умолчанию используется для служб IIS.Если на следующих этапах вам не удается подключиться к удаленному узлу из Visual Studio с использованием имени узла, попробуйте использовать вместо имени узла IP-адрес сервера.
Примечание.
Если вы выполняете публикацию в службах IIS, работающих на виртуальной машине Azure, необходимо открыть входящий порт для веб-развертывания и служб IIS в группе безопасности сети. Подробные сведения см. в статье Открытие портов для виртуальной машины.
Скопируйте этот файл на компьютер, на котором выполняется среда Visual Studio.
Импорт параметров публикации в Visual Studio и развертывание
На компьютере, где открыт проект ASP.NET в Visual Studio, щелкните правой кнопкой мыши этот проект в обозревателе решений и выберите Опубликовать.
Если ранее вы настроили какие-либо профили публикации, появится панель Опубликовать. Щелкните Создать или Создать профиль.
Выберите вариант для импорта профиля.
В открывшемся диалоговом окне Публикация выберите Импортировать профиль.
Перейдите в расположение файла параметров публикации, созданного в предыдущем разделе.
В диалоговом окне Импортировать файл параметров публикации перейдите к профилю, созданному в предыдущем разделе, выберите его и нажмите кнопку Открыть.
Щелкните Готово, чтобы сохранить профиль публикации, а затем щелкните Опубликовать.
Visual Studio начинает процесс развертывания, а в окне вывода отображаются ход выполнения и результаты.
При возникновении ошибок развертывания щелкните Дополнительные действия>Изменить для изменения настроек. Измените параметры и нажмите кнопку Проверить для тестирования новых параметров. Если имя узла не найдено, попробуйте указать IP-адрес вместо имени узла в полях Сервер и Конечный URL-адрес.
После успешного развертывания приложение должно запускаться автоматически.
Распространенные проблемы
Сначала проверьте сведения о состоянии в окне вывода в Visual Studio и просмотрите сообщения об ошибках. Дополнительно:
- Если не удается подключиться к узлу с помощью имени узла, попробуйте использовать IP-адрес.
- Убедитесь, что на удаленных серверах открыты необходимые порты.
- Для ASP.NET Core в IIS необходимо убедиться, что в поле "Пул приложений" для DefaultAppPool задано значение Без управляемого кода.
- Убедитесь, что версия ASP.NET, используемая в приложении, совпадает с версией, установленной на сервере. Просмотреть и задать версию в приложении можно на странице Свойства. Чтобы задать другую версию приложения, необходимо установить эту версию.
- Если приложение не удалось открыть из-за предупреждения о сертификате, выберите параметр "Доверять сайту". Если вы уже закрыли предупреждение, вы можете изменить файл *.pubxml в проекте и добавить следующий элемент:
<AllowUntrustedCertificate>true</AllowUntrustedCertificate>
. Этот параметр предназначен только для тестирования! - Если приложение не запускается из Visual Studio, запустите его в IIS, чтобы проверить корректность его развертывания.