Нужно ли устанавливать компонент Web Deploy на виртуальной машины для сборки и публикации проектов?
Добрый день, настраивается виртуальная машина для сборки C# проектов с последующей публикации на веб-сервере IIS, где также установлена служба WebDeploy.
Возник вопрос, при публикации проекта через Visual Studio, вопросов нет, всё успешно публикуется.
Если же запустить сборку и публикацию на сборочной машине с помощью msbuild, то после успешной компиляции ругается на компонент Webdeploy.
Команда запуска msbuild следующая:
'"C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\msbuild.exe" /p:DeployOnBuild=True /p:Configuration=Debug /p:Platform="Any CPU" /p:VisualStudioVersion=15.0 /p:WebPublishMethod=MSDeploy /p:MSDeployServiceURL="https://140vm-cmain:8172/msdeploy.axd" /p:DeployIISAppPath="MainSite/WebApp" /p:MSDeployPublishMethod=WMSVC /p:AllowUntrustedCertificate=True /p:PublishProfile=Dev.pubxml /p:AuthType=NTLM WebApp.sln'
Ошибка на выходе следующая:
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\VisualStudio\v15.0\Web\Microsoft.Web.Publishing.targets(3758,5): error : Package/Publish task Microsoft.Web.Publishing.Tasks.IsCleanMSDeployPackageNeeded failed to load Web Deploy assemblies. Microsoft Web Deploy is not correctly installed on this machine. Microsoft Web Deploy v3 or higher is recommended. [C:\GitLab-Runner\builds\BPKNgzEq\0\140strelkov\webapp\WebApp\WebApp.csproj]
Виртуальная машина лёгкая. по минимуму допонительного ПО: WinServer 2016, NetFramework 4.7 + SDK, nuget.exe,
vs_buildtools.exe –add Microsoft.VisualStudio.Workload.WebBuildTools –add Microsoft.VisualStudio.Workload.MSBuildTools
- Вопрос задан более трёх лет назад
- 158 просмотров
2 комментария
Простой 2 комментария
Web Deploy 3.0
Web Deploy (инструмент веб-развертывания) – это инструмент от компании Microsoft, который значительно упрощает миграцию, управление и развертывание веб-серверов IIS, веб-приложений и сайтов.
Вот две причины, по которым стоит установить Web Deploy на своем сервере:
- Простая публикация приложений. Веб-разработчики, пишущие код в Visual Studio® (интегрированная среда разработки) и WebMatrix® (инструмент для разработки) могут использовать Web Deploy для публикации своих приложений на рабочий сервер. Если вы хотели бы предоставить своим клиентам возможность использовать этот эффективный и простой способ публикации, установите Web Deploy на свой сервер. Примечание. Вам не нужно устанавливать Visual Studio® и WebMatrix® на серверы Plesk. Эти программы предназначены для установки клиентами на своих ПК.
- Новый рынок для ваших услуг хостинга. WebMatrix® помогает пользователям найти подходящий хостинг-план в коллекции услуг хостинга на сайте Microsoft (каталог, в котором хостинг-провайдеры рекламируют свои предложения). Если вы хотите видеть свои хостинг-планы в этой коллекции, одним из требований является наличие у вас инструмента Web Deploy.
1. Установка Web Deploy
Существует два способа установки Web Deploy: в качестве компонента Plesk (рекомендуется) и вручную. В первом случае вы устанавливаете Web Deploy как любой другой компонент Plesk: Инструменты и настройки > Обновления > Установить / удалить компоненты. В Plesk 10.4 или ранее этот компонент можно установить только вручную. Инструкции по установке смотрите далее в разделе Ручная установка Web Deploy.
Примечание. Для успешной установки Web Deploy необходима оболочка Microsoft Windows Powershell. Убедитесь, что она установлена на сервере (доступна по умолчанию начиная с Windows 2008 R2). Инструкции по установке Windows PowerShell смотрите на странице http://www.microsoft.com/powershell.
После окончания установки вы можете проверить, был ли инструмент Web Deploy обнаружен в Plesk. Для этого войдите в Plesk как администратор и перейдите на страницу Инструменты и настройки > Серверные компоненты. В списке вы увидите новый компонент – Веб-публикация. Кроме того, возможность веб-публикации будет добавлена во все существующие подписки (на вкладку Параметры хостинга) и по умолчанию будет отключена.
Если ваши клиенты используют базу данных MySQL, то в Установщике веб-платформы Майкрософт вам также нужно будет установить компонент MySQL Connector/Net.
2. Повышение безопасности
Во время установки Web Deploy в IIS добавляется несколько новых правил делегирования, позволяющих пользователям без прав администратора выполнять операции с базами данных и файлами их сайтов IIS. В частности, правила, которые Web Deploy добавляет по умолчанию, позволяют вашим клиентам менять версию .NET в своих пулах приложений. Такое изменение может привести к неисправности тех приложений .NET, которые не совместимы с определенными версиями .NET. Более того, если вы используете общие пулы приложений IIS, это изменение затронет приложения всех клиентов, использующих один и тот же пул.
Чтобы запретить изменение версии .NET пользователям, не являющимся администраторами, Plesk автоматически добавляет исключение из правила appPoolPipeline. Однако помимо этого мы также рекомендуем настроить IIS таким образом, чтобы приложения каждой из подписок запускались в отдельном пуле. Это позволит поддерживать бесперебойную работу остальных пулов даже в случае повреждения пула в одной из подписок. Включить использование отдельных пулов можно в настройках плана: вкладка Производительность > Выделенный пул приложений IIS.
3. Защита сервиса с помощью сертификата
Во время своей установки Web Deploy устанавливает и активирует Диспетчер IIS, который обеспечивает защиту подключений к Web Deploy. Мы настоятельно рекомендуем снабдить Диспетчер IIS действительным SSL-сертификатом, чтобы ваши клиенты могли проверить удостоверение вашего сервера перед тем, как передавать на него свои данные. Как это сделать, смотрите на странице http://learn.iis.net/page.aspx/144/how-to-set-up-ssl-on-iis-7/. Если вы этого не сделаете, то клиенты, выбравшие безопасное подключение в настройках публикации Visual Studio® или WebMatrix®, не смогут публиковать свои сайты.
4. Активация Web Deploy в хостинг-планах и подписках
После установки и настройки инструмента Web Deploy его нужно активировать на странице Параметры хостинга в свойствах необходимых хостинг-планов и несинхронизированных подписок.
Ручная установка Web Deploy
Для успешной установки Web Deploy должны быть выполнены следующие требования:
- На сервере должна быть установлена операционная система Windows Server 2008 или выше.
- На сервере должна быть установлена оболочка Windows PowerShell. В Windows Server 2008 этот компонент не установлен по умолчанию (в отличие от 2008 R2). Инструкции по установке Windows PowerShell смотрите на странице http://www.microsoft.com/powershell.
- На сервере должна присутствовать служба ролей Служба управления (Диспетчер сервера >Веб-сервер >Средства управления > Добавить службы ролей).
Процесс установки довольно прост: в Установщике веб-платформы Майкрософт найдите продукт Web Deployment Tool (Инструмент веб-развертывания) и добавьте его на сервер. Подробную информацию об установщике смотрите на странице http://www.microsoft.com/web/downloads/platform.aspx.
Как вариант, вы можете скачать исполняемый файл Web Deploy и запустить его от лица администратора. Ссылка для скачивания доступна на странице http://www.iis.net/download/WebDeploy.
Примечание. Вам нужно будет выбрать один из вариантов установки: полная или выборочная; в случае выборочной установки необходимо указать параметр Configure for Non-Administrator Deployments.
Публикация сайта на ASP.NET с помощью Web Deploy
Web Deploy — это инструмент веб-развертывания от компании Microsoft. Он позволяет мигрировать и развертывать проекты (сайты или веб-приложения), а также управлять ими. Чтобы использовать инструмент, закажите хостинг с поддержкой ASP.NET на 2DOMAINS.
Как опубликовать проект через Web Deploy
Обратите внимание: перед публикацией проверьте, что ваш домен привязан к хостингу и к домену подключен Web Deploy. Если инструмент не подключен, обратитесь в клиентскую службу.
Опубликовать проект можно только через специальные среды разработки, которые поддерживает Web Deploy. Мы покажем, как опубликовать приложение с помощью Visual Studio 2017.
1. Откройте Visual Studio на вашем компьютере. Если у вас нет этой программы, скачайте её с официального сайта Microsoft.
2. Откройте проект, который планируете опубликовать:
3. Во кладке «Сборка» выберите пункт Опубликовать My_project:
4. Нажмите Запуск:
5. Выберите пункт IIS, FTP и т. д. и нажмите Опубликовать:
6. Откройте Способ публикации — Веб-развертывание (Web Deploy) и внесите данные для подключения (где их найти, мы рассказали в инструкции Доступы и пароли для панели управления хостингом, FTP, MySQL):
- Сервер — IP-адрес вашей услуги хостинга,
- Имя сайта — домен, на котором будет развёрнут проект,
- Имя пользователя — логин вашей услуги хостинга,
- Пароль — пароль от услуги хостинга,
- Целевой URL-адрес — данная страница будет открыта в браузере после публикации проекта, заполнять не обязательно.
После этого нажмите Проверить подключение. Если оно прошло успешно, кликните Далее:
7. Выберите параметры:
- в поле «Конфигурация»:
- Release — если хотите собрать и выпустить программу: она будет оптимизирована по размеру и производительности, а также не будет содержать дополнительную информацию об отладке;
- Debug — если хотите отладить программу: эта конфигурация отключает все настройки по оптимизации и активирует настройки отладки. Debug используется в качестве основной конфигурации по умолчанию;
- в поле «Целевая платформа»: версия netcore, под которой компилируется локальное приложение;
- в поле «Режим развертывания»: Зависимое от платформы;
- в поле «Целевая среда выполнения»: win-x86 или win-x64;
Отметьте галочкой пункт «Базы данных» (если они есть в вашем проекте) и укажите параметры подключения. После этого нажмите Сохранить:
8. Вновь введите пароль от услуги хостинга:
Подождите, пока проект будет опубликован. Состояние публикации отображается внизу страницы в поле «Общее состояние»:
Готово, вы опубликовали проект.
Популярные статьи
- Как указать (изменить) DNS-серверы для домена
- Я зарегистрировал домен, что дальше
- Как добавить запись типа A, AAAA, CNAME, MX, TXT, SRV для своего домена
- Что такое редирект: виды и возможности настройки
- Как создать почту со своим доменом
При подготовке материала использовались источники:
https://qna.habr.com/q/596311
https://docs.plesk.com/ru-RU/12.5/deployment-guide/%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5-a-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-%D1%81%D1%82%D0%BE%D1%80%D0%BE%D0%BD%D0%BD%D0%B8%D1%85-%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%BE%D0%B2/web-deploy-30.69594/
https://2domains.ru/support/saity/publikatsiya-sayta-na-asp-net