Ошибка разрешений в отношении Jenkins, Web Deploy и IIS - PullRequest
0 голосов
/ 29 марта 2019

Мы запускаем ведомое устройство Jenkins, используя учетную запись домена Windows для запуска службы, и настраиваем Web Deploy 3.6 для развертывания в нашем приложении в IIS (8.5).Это настроено для развертывания на других серверах, которые используют для развертывания учетную запись службы Jenkins, и она работает, как и положено, но для этого одного сервера мы получаем следующую ошибку разрешений:

Start Web Deploy Publish the Application/package to https://<app url>:8172/msdeploy.axd?site=<app> ...
  Starting Web deployment task from source: manifest(E:\JenkinsCDP\workspace\<app folder>\<app name>\GUI - Stage\<app folder>\<app name>\obj\Debug\Package\<app name>.SourceManifest.xml) to Destination: auto().
E:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\VisualStudio\v15.0\Web\Microsoft.Web.Publishing.targets(4292,5): msdeploy error
 ERROR_USER_UNAUTHORIZED: Web deployment task failed. 
(Connected to the remote computer ("<app url>") using the Web Management Service, but could not authorize. Make sure that you are using the correct user name and password, that the site you are connecting to exists,
 and that the credentials represent a user who has permissions to access the site.  Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_USER_UNAUTHORIZED.)

Разница с этим сервером заключается в том, что он также работает с другой учетной записью в пуле приложений в IIS.Мы заменили администратора и пользователя по умолчанию, созданных при установке Web Deploy, на учетную запись службы Jenkins и обновили правила в делегировании службы управления, чтобы использовать эту учетную запись.Учетная запись службы Jenkins и учетная запись пула приложений имеют полные права доступа к каталогу inetpub, и мы даже добавили его в группу администраторов (даже если она не добавлена ​​в группу администраторов на других работающих серверах), и мы по-прежнему получаем ту же ошибку,Я также перезагрузил сервер после установки.Я проверил журнал службы управления и вижу следующее:

#Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) cs(Referer) sc-status sc-substatus sc-win32-status time-taken
2019-03-26 15:28:18 <ip addr1> HEAD /msdeploy.axd site=<app name> 8172 - <ip addr2> - - 401 2 5 2089
2019-03-26 15:31:53 <ip addr1> HEAD /msdeploy.axd site=<app name> 8172 - <ip addr2> - - 401 2 5 11

Я ожидаю увидеть фактический идентификатор для имени пользователя cs, но ничего не вижу.Как будто служба не видит учетную запись службы Jenkins.Но если я запускаю другую сборку, используя Web Deploy на другом сервере и в том же ведомом устройстве Jenkins, он работает так, как должен.Мы ожидаем увидеть следующее в журнале службы управления:

2019-03-18 03:27:23 <ip addr1> HEAD /msdeploy.axd site=<app name> 8172 <domain>\<user> <ip addr2> - - 200 0 0 139

Любой вклад будет принят с благодарностью.

...