Wenn Web Deploy nicht mehr funktioniert

Wir verwenden Web Deploy bei uns in vielen Projekten. Es vereinfacht das Bereitstellen und Updaten von Web-Anwendungen ungemein. Wenn alles eingerichtet ist, benötigt es nur einen Klick in Visual Studio und schon werden die Änderungen in die Produktion übertragen. Das Ganze lässt sich natürlich auch in CI (“Continous Integration”) einbauen. Herrlich.

Bis es plötzlich, von heute auf morgen, mit einer kryptischen Fehlermeldung nicht mehr funktioniert:

error : (DATUM und UHRZEIT) An error occurred when the request was processed on the remote computer. [PFAD ZUR PROJEKT-DATEI]
error : Unable to perform the operation. Please contact your server administrator to check authorization and delegation settings. [PFAD ZUR PROJEKT-DATEI]
error :  [PFAD ZUR PROJEKT-DATEI]

Geändert hat sich weder bei der Server- (Web Management Service-)Konfiguration etwas, noch bei der Publish-Konfiguration in Visual Studio oder im CI.

Die Lösung des Web Deploy- Problems

Nach einiger Suche bin ich auf einen Beitrag von “A Software Guy’s Blog” von 2012 gestoßen, welcher mich zu einem Stackoverflow-Eintrag führte. Dort fand ich schließlich die Lösung des Rätsels:

Beim Installieren des “Web Management Service” werden zwei Benutzer angelegt (“WDeployConfigWriter” and “WDeployAdmin”). Diese beiden Benutzer haben zeitlich begrenzte Passwörter! Das Problem lässt sich also lösen, indem man bei den beiden Benutzern “Password never expires” setzt.

Password Never Expires
Setzen von “password never expires”

Zu diesem Dialog gelangt man über “Server Manager->Tools->Computer Management->Local Users and Groups->Users->Rechtsklick auf den gewünschten User->Properties” (Windows Server 2016).

Im Stackoverflow Artikel ist auch geschreiben, dass man die Passwörter ändern, und die geänderten Passwörter im IIS eintragen muss. Bei mir hat es auch ohne diesen Schritt funktioniert.