Итак, я создаю задание Jenkins, которое будет создавать и развертывать приложение, которое у меня есть. Создать его легко, но у меня проблемы с его развертыванием.
Вот моя команда сборки:
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe" "AppName\AppName.csproj" /T:Build;Package /p:Configuration=DEBUG /p:OutputPath="obj\DEBUG" /p:DeployIisAppPath="/sub.domain.com/AppName" /p:VisualStudioVersion=14.0
sub.domain.com - это имя веб-сайта в IIS, а AppName - это приложение под ним.
Вот в основном моя команда развертывания, которая не работает:
"C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb:sync -source:package="AppName\obj\Debug\_PublishedWebsites\AppName_Package\AppName.zip" -dest:auto,computerName="https://webserver:8172/msdeploy.axd",username=jenkins,password=jenkins,authType=basic -allowUntrusted=true
Теперь в IIS у меня есть пользователь-менеджер, настроенный с указанными выше учетными данными и имеющий разрешения как для сайта, так и для приложения. Но всякий раз, когда я запускаю эту команду, я получаю сообщение ERROR_USER_UNAUTHORIZED.
Что мне нужно изменить в моей команде развертывания, чтобы я мог развернуть ее на веб-сервере?
Спасибо!
Если ваш пользователь развертывания не является администратором, то он должен быть добавлен в качестве управляющего пользователя на сайт IIS (предположим, что он называется "my_iis_site"), он должен иметь достаточно разрешений файловой системы для папки сайта (изменить / удалить / создать как минимум ), и ваша команда развертывания покажет обработчику, что вы собираетесь выполнить в рамках этого сайта:
"C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb:sync -source:package="AppName\obj\Debug\_PublishedWebsites\AppName_Package\AppName.zip" -dest:auto,computerName="https://webserver:8172/msdeploy.axd?site=my_iis_site",username=jenkins,password=jenkins,authType=basic -allowUntrusted=true
Итак, уловка состоит в том, чтобы передать имя сайта обработчика msdeploy.axd в виде строки запроса site = my_iis_site.