Už od Visual Studia 2010 používám WebDeploy pro nasazování většiny webových aplikací – je to cesta nejmenšího odporu a v 99% případů to funguje. Nedávno jsem na novém serveru WebDeploy nakonfiguroval, vytvořil účet a dal ho ostatním v týmu, aby mohli nasazovat aplikaci. Chvíli to fungovalo, ale po čase začal deploy padat s následující chybou:
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.targets(4253,5): Error : Web deployment task failed. ((18. 4. 2014 21:01:38) An error occurred when the request was processed on the remote computer.)
An error occurred when the request was processed on the remote computer.
Operaci nelze provést. Obraťte se na správce serveru, aby zkontroloval nastavení autorizace a delegování.
Publish failed to deploy.
Přitom pod administrátorským účtem mi publish fungoval dobře, takže jsem začal pátrat, co to způsobuje. Po chvíli googlení a hrabání se v event logu jsem zjistil, že expirovalo heslo uživatelským účtům WDeployAdmin a WDeployConfigWriter. Stačí jim tedy heslo vyresetovat a hlavně nastavit Password never expires.
Pak je potřeba v IIS Manageru otevřít sekci Management Service Delegation a u všech položek, které tyto účty používají, nastavit nové heslo.
Proč je to takhle divně a proč expirace hesla není u těchto účtů vypnutá defaultně, mi není úplně jasné, nicméně raději jsem o tom napsal na blog – až to zase jednou budu hledat, bude se to hodit.