Не удалось построить задачу веб-развертывания


86

Сценарий:

Я успешно настроил задачу TFS2010 webdeploy для решения. Все работало нормально, пока вдруг что-то не пошло не так в задаче развертывания.

В решении есть 2 веб-проекта ... они настроены для развертывания при сборке и публикации на dev-сервере.

Кто-нибудь знает, что не так в сборке (информация ниже)?

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets
(3847): Web deployment task failed.
((4.8.2011 11:01:10) An error occurred when the request was processed on the remote computer.)
(4.8.2011 11:01:10) An error occurred when the request was processed on the remote computer. Unable to perform the operation. Please contact your server administrator to check authorization and delegation settings.

Могу дать больше информации, если она кому-то понадобится.


1
Если вы задаетесь этим вопросом совсем недавно, см. Самый последний ответ
Сетхи

Ответы:


209

Я столкнулся с той же проблемой при сборке через TFS. Когда я попытался вручную импортировать веб-сайт, я получил более информативную ошибку: «не могу войти в систему для пользователя \ WDeployConfigWriter».

Оказывается, когда вы устанавливаете веб-развертывание, он устанавливает две локальные учетные записи WDeployConfigWriter и WDeployAdmin. Срок действия паролей для этих учетных записей истекает. Так что сбросьте пароли на веб-сервере и установите «никогда не истекает». Затем перейдите в раздел «Делегирование службы управления в IIS». Каждое из представленных правил имеет поле UserName. Если это WDeployAdmin или WDeployConfigWriter, щелкните правой кнопкой мыши и обновите учетные данные до новых паролей.

Полное объяснение со скриншотами можно найти здесь: http://workinghardinit.wordpress.com/2011/07/18/wdeployconfigwriter-account-issues-trouble-shooting-web-deploy-2-0-with-lessons-learned/


21
Если пароли не были изменены, вы можете просто установить для учетных записей WDeployConfigWriter и WDeployAdmin значение «Пользователь не может изменить пароль» и «Срок действия пароля никогда не истекает». В нашем случае «Срок действия пароля указанной учетной записи истек». был в журнале безопасности при установке нового сервера.
GoClimbColorado

2
Ницца. Это было проблемой в моем случае. Я установил пароль пользователя WDeployConfigWriter, чтобы он не истекал, и это решило проблему.
Стэн администратор базы данных

2
Мне удалось найти аналогичную ошибку в средстве просмотра событий (на сервере 2012 в журналах приложений и служб >> Microsoft Web Deploy). Ошибка отображается в деталях как:Microsoft.Web.Delegation.DeploymentAuthorizationException: Not able to log on the user '.\WDeployConfigWriter'. ---> System.Runtime.InteropServices.COMException: The password for this account has expired.
Джон Эгертон

Еще в феврале 2016 года я столкнулся с этой странной проблемой на сервере Windows Server 2008R2, и ваше решение сработало для меня.
Эхсан Мирсаиди

2
Я подтверждаю, что вам НЕ нужно менять пароль. Установка «пароль никогда не истекает» достаточно, чтобы решить проблему без дополнительных шагов, согласно комментарию @ GoClimbColorado
NickG

41

Все, что вам нужно сделать, это повторно запустить сценарий «AddDelegationRules.ps1», расположенный в «C: \ Program Files \ IIS \ Microsoft Web Deploy V3 \ Scripts \».

Это сценарий, который запускается при первой установке веб-развертывания. Он воссоздает все отсутствующие делегирования, повторно установит пароли для WebDeployAdmin и WebDeployConfigWriter и снова добавит WebDeployAdmin в группу администраторов.

Вам все равно потребуется установить пароль для каждой учетной записи, чтобы он не истекал после повторного запуска скрипта.


Ваш совет мне очень помог. Я нашел и выполнил этот сценарий «AddDelegationRules.ps1» с помощью «poverShell». Я использую сервер победы 2012 r2 и VS2017.
Роберто Гата,

12

У нас была такая же проблема - в нашем случае мы используем только MSDeploy (без TFS ). Сброс пароля для этих двух локальных учетных записей ( WDeployConfigWriter и WDeployAdmin ) решил проблему, так как срок действия их паролей истек . Мы попытались изменить политику паролей, чтобы срок ее действия не истек, но это может сделать только локальный администратор .


2
Просто использовал этот ответ, чтобы решить эту проблему. Однако для меня был еще один шаг ... После того, как вы сбросили учетные данные, вам нужно перейти в IIS> Management Services Delegation, затем выбрать каждое правило и нажать Edit . Если правило использует учетную запись WDeployConfigWriter , нажмите кнопку « Установить ...» и повторно введите новые учетные данные, которые вы только что обновили.
EvilDr 03

3
На самом деле это только половина ответа ... для предотвращения истечения срока действия паролей откройте диспетчер локальных групп (запустить lusrmgr.msc), пользователей (на боковой панели), дважды щелкните имя учетной записи и установите флажок «Срок действия пароля никогда не истекает».
Kat

Я смог решить эту проблему, просто сняв флажок User must change password at next loginи физически не меняя пароли,
Крис Шаллер,

3

запустите эту команду lusrmgr.msc, дважды щелкните пользователя, дважды щелкните имя учетной записи и отметьте «пароль никогда не истекает». введите описание изображения здесь

введите описание изображения здесь Выполнено.


Я проверил это, но у меня проблемы с развертыванием
Петр Пёнткевич
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.