Помилка побудови завдання веб-розгортання


86

Сценарій:

Я успішно створив завдання веб-розгортання TFS2010 для рішення. Все працювало нормально, поки раптом щось не пішло не так у завданні розгортання.

Рішення має 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 не діє, і це вирішило проблему.
Stan the DBA

2
Мені вдалося знайти подібну помилку в засобі перегляду подій (на сервері 2012 у Журналах програм та служб >> Розгортання веб-сайтів Microsoft). Помилка в деталях відображається як: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 2008R2, і ваше рішення працювало для мене.
Ehsan Mirsaeedi

2
Я можу підтвердити, що вам НЕ потрібно міняти пароль. Встановлення "пароль ніколи не закінчується" достатньо, щоб вирішити проблему без зайвих кроків, згідно з коментарем @ GoClimbColorado
NickG,

41

Все, що вам потрібно зробити, це повторно запустити сценарій "AddDelegationRules.ps1", розташований у "C: \ Program Files \ IIS \ Microsoft Web Deploy V3 \ Scripts \"

Це сценарій, який запускається під час першого встановлення веб-розгортання. Він повторно створить усі відсутні делегації, повторно встановить паролі для WebDeployAdmin і WebDeployConfigWriter і додасть WebDeployAdmin назад до групи адміністраторів.

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


Ваша порада мені дуже допомогла. Я знайшов і виконав цей скрипт "AddDelegationRules.ps1" за допомогою "poverShell". Я використовую сервер 2012 r2 win і VS2017.
Роберто Гата,

12

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


2
Просто використав цю відповідь, щоб вирішити це сам. Для мене був ще один крок ... Після того, як ви скинули облікові дані, вам потрібно перейти до IIS> Делегування служб управління, потім вибрати кожне правило та натиснути Редагувати . Якщо правило використовує обліковий запис WDeployConfigWriter , натисніть кнопку Встановити ... та знову введіть нові облікові дані, які ви щойно оновили.
EvilDr

3
Це насправді лише половина відповіді ... щоб запобігти закінченню терміну дії паролів, відкрийте локальний диспетчер груп (запустити lusrmgr.msc), користувачів (на бічній панелі), двічі клацніть ім’я облікового запису та поставте галочку «пароль ніколи не закінчується».
Кет

Я зміг це вирішити, просто знявши прапорець User must change password at next loginі не змінивши фізично паролі
Chris Schaller,

3

запустіть цю команду lusrmgr.msc двічі клацніть на користувача та двічі клацніть ім'я облікового запису та поставте галочку "пароль ніколи не закінчується". введіть тут опис зображення

введіть тут опис зображення Готово.


У мене це було перевірено, але у мене проблема з розгортанням
Пьотр Піткевич

Це спрацювало для мене! Дякую!
GisMofx
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.