web-dev-qa-db-de.com

WebDeploy (401) Nicht autorisierter Fehler

Ich erhalte einen nicht autorisierten Fehler von MsDeploy mit NTLM-Authentifizierung, wenn Sie versuchen, eine Anwendung mit einem Windows-Benutzer, der kein lokaler Administrator auf dem Zielserver ist, remote bereitzustellen. Ich habe in der Verwaltungsdienstdelegierung auf der Zielbox Setup-Regeln festgelegt, bei denen alle Anbieter aktiviert sind. Unter dieser Regel habe ich 2 Benutzer mit Erlaubnisberechtigungen hinzugefügt ('*' und mein Windows-Benutzer, der die Remote-Bereitstellung durchführt). Außerdem habe ich die Windows-Benutzererlaubnis für die Site erteilt, die ich bereitstellen möchte. Wenn ich dem Windows-Benutzer einen lokalen Administrator in der Zielbox gestelle und "Administratoren das Umgehen von Regeln zulassen" auswähle, funktioniert die Bereitstellung ordnungsgemäß. Wenn der Windows-Benutzer kein lokaler Administrator ist, wird die folgende Fehlermeldung angezeigt:

Web-Bereitstellungstask fehlgeschlagen (Remote-Agent (URL http: // xxxxxxxx/MSDEPLOYAGENTSERVICE ) konnte nicht kontaktiert werden. Stellen Sie sicher, dass der Remote-Agent-Dienst auf dem Zielcomputer installiert und gestartet ist Name und Passwort sind korrekt. Wenn das Problem nicht behoben ist, wenden Sie sich an Ihren lokalen Administrator oder Serveradministrator. Fehlerdetails: Remote-Agent (URL http: // xxxxx/MSDEPLOYAGENTSERVICE ) konnte nicht kontaktiert werden. Stellen Sie sicher, dass der Remote-Agent-Dienst auf dem Zielcomputer installiert und gestartet ist. Es wurde eine nicht unterstützte Antwort empfangen. Der Antwortheader 'MSDeploy.Response' lautete 'V1', aber 'v1' wurde erwartet. Der Remote-Server hat einen Fehler zurückgegeben: (401) Nicht autorisiert. in Microsoft.Web.Publishing.targets (3588, 5)

27
cfbarbero

Wenn Sie die Delegierung so konfigurieren, dass Administratoren Regeln umgehen können und der Befehl msdeploy erfolgreich ausgeführt wird, durchlaufen Sie WMSvc. Andernfalls scheint es, dass WMSvc Sie zurückweist und Sie auf den Web Deloy-Agenten zurückgreifen. 

Legen Sie den folgenden Registrierungswert für den WMSvc-Registrierungsschlüssel fest bzw. fügen Sie ihn hinzu:

reg add HKLM\Software\Microsoft\WebManagement\Server /v WindowsAuthenticationEnabled /t REG_DWORD /d 1

WMSvc recyceln:

net stop wmsvc & net start wmsvc

Versuchen Sie es nochmal. Wenn dies nicht gelingt, können Sie Ihre msdeploy-Befehlszeile posten. 

49
kateroh

Wir haben eine Maschine, auf der wir im Rahmen unseres Build-Prozesses installiert haben. Aus keinem offensichtlichen Grund funktionierten die Bereitstellungen nicht mehr und wir konnten nicht länger auf die Verwaltungsfreigaben (C $, ADMIN $ usw.) zugreifen. Wir haben ein Update für die administrativen Freigaben gefunden, das auch die Probleme bei der Bereitstellung beseitigt hat.

Wir haben den Schritt in diesem KB-Artikel befolgt, um die administrativen Freigaben wieder zu aktivieren (immer noch keine Ahnung, warum sie plötzlich nicht mehr funktionieren).

http://support.Microsoft.com/kb/947232

Nachdem wir das getan hatten, funktionierte msdeploy plötzlich auch wieder. Ich glaube nicht, dass msdeploy überhaupt administrative Freigaben verwendet hat. Ich bin nicht einmal sicher, dass die beiden überhaupt verwandt sind, aber ich dachte, ich würde es rausschmeißen, falls es das Problem eines anderen löst.

5
Jon Turner

Endlich konnte ich meine automatisierte Erstellung und Bereitstellung mit NTLM ausführen. Ich wollte nur zusammenfassen, was es brauchte, um es in Gang zu bringen, falls es für jedermann hilfreich ist. Dies ist mit IIS 7,5.

  1. Legen Sie die Registrierungseinstellung fest und starten Sie den Webverwaltungsdienst (WMSVC) erneut:

    reg add HKLM\Software\Microsoft\WebManagement\Server/v WindowsAuthenticationEnabled/t REG_DWORD/d 1

  2. Erteilen Sie dem Benutzer, der den TFS-Build-Service ausführt, die Berechtigung im Website-Verzeichnis.

  3. Hier sind die MSBuild-Argumente, die ich verwendet habe. Ersetzen Sie die verschiedenen Namen durch Ihre Namen. Ich habe DEV und Any CPU verwendet. Ich musste auch ein nicht vertrauenswürdiges Zertifikat zulassen.

    / m/p: PublishProfile = DEV/p: Konfiguration = DEV/p: Plattform = "Beliebige CPU"/p: DeployOnBuild = true/p: AllowUntrustedCertificate = true/p: authType = NTLM

  4. Öffnen Sie in IIS Manager die Zielwebsite ausgewählt, öffnen Sie IIS Manager Berechtigungen und erlauben Sie dem Benutzer, den TFS-Builddienst auszuführen. 

Die Nachverfolgung war sehr hilfreich bei der Diagnose der Probleme. Sie können die Ablaufverfolgung in Management Service Delegation in IIS Manager aktivieren. Anfangs konnte ich Management Service Delegation nicht in IIS Manager sehen. Um zu zeigen, musste ich Web Deploy von Add Programs aus ändern, damit Management Service Delegation installiert wurde. Es sah so aus, als wäre es installiert worden, aber ich habe die Dropdown-Liste zurückgesetzt, um sie auf meinem Computer zu installieren und die Installation abzuschließen. Dann erschien es in IIS Manager.

4
EricksonG

Sie sind sich nicht sicher, was genau der Grund ist, können Ihnen aber helfen, Ihren Weg zu finden.

WebDeploy verwendet zwei Einstiegspunkte, die auf der Konfiguration des Remote-Servers basieren, und zwar unabhängig davon, ob IIS6 oder IIS7 ausgeführt wird. 

IIS 7 verwendet den IIS - Bereitstellungshandler , der vom Web Management Service verwaltet wird und es msdeploy ermöglicht, IIS direkt bereitzustellen. Alle Einstellungen für "Verwaltungsdienst-Delegierung" usw. beziehen sich auf dieses Setup.

IIS 6 verfügt jedoch nicht über den Webverwaltungsdienst, sodass der Handler nicht funktioniert. Für IIS6-Ziele wird ein Dienst namens MS Deploy Agent Service verwendet.

Seltsam ist, dass Ihr Setup vorschlägt, dass Sie IIS 7 verwenden, da Sie Delgationseinstellungen usw. festlegen konnten. Die URL "/ MSDEPLOYAGENTSERVICE" legt jedoch nahe, dass Ihr Computer versucht, den Dienst zu verwenden ... fast so, als glaubte er IIS 6. Der Dienst erfordert Administratorzugriff, weshalb Sie diese Fehlermeldung erhalten.

Aufgrund des Fehlers sieht es so aus, als würden Sie dies von MSbuild aus aufrufen, wahrscheinlich direkt von Visual Studio. Möglicherweise möchten Sie sich in den Einstellungen, die Sie erhalten, umsehen und prüfen, ob der Pfad und/oder der Server ausgewählt werden.

Stellen Sie außerdem sicher, dass der Web Management Service auf dem Remote-Computer ausgeführt wird. 

Im Grunde möchten Sie sehen, dass es Bereitstellungsaufrufe an eine andere URL, http: // <> /msdeploy.axd (wenn ich mich recht erinnere) ausführt, um den Handler ordnungsgemäß aufzurufen.

3
Taylor Bird

Das verbrachte viel zu viele Stunden meiner Zeit. Ich hatte bereits Web Deploy für meine anderen Websites. Ich entschied mich, eine neue Website zu meinem Server hinzuzufügen, und versuchte, sie bereitzustellen (aber ich habe versehentlich denselben Namen " Site/application " aufgrund eines übereifrigen Copy/Paste-Fehlers gelassen). Die Veröffentlichung war erfolgreich, aber als mir klar wurde, dass ich auf der falschen Site veröffentlicht wurde (anstelle der neuen Site), änderte ich den Namen der Site und versuchte, sie erneut zu implementieren, aber ich erhielt diesen Fehler. Ich habe alles am IIS Ende der Dinge versucht. Schließlich habe ich meine Visual Studio 2010-Instanz einfach ganz heruntergefahren. Eröffnete es wieder, probierte das Publizieren erneut und es funktionierte!

Wenn Sie Zweifel haben, fragen Sie sich: "Haben Sie versucht, es auszuschalten und wieder einzuschalten?"
Ich weiß, dass dieser Ratschlag nicht allen mit diesem mehrdeutigen Fehler hilft - nur ein paar Auserwählte.

2
MikeTeeVee

Wenn Ihr Benutzer ein Administrator ist, erhalten Sie trotzdem 

ERROR_USER_IS_NOT_ADMIN

stellen Sie sicher, dass Sie den vollständig qualifizierten Benutzernamen verwenden. 

MyMachineName\MyWebDeployUser

1
Dann

Gestern konnte ich mich gut implementieren, heute hatte ich genau diese Fehlermeldung. Nach ein oder zwei Stunden der Problembehandlung entfernte ich die Domäne von meinem Benutzernamen. Wo es vorher DOMAIN\Benutzername war, habe ich es in [Benutzername] geändert, siehe unten, und es begann wieder zu funktionieren. Ich weiß, das ist keine großartige Antwort, aber vielleicht hilft es jemandem, der darüber stößt.

1
Ken Johnson

Ich denke, dein Problem ist wirklich einfach ... Ich hatte das gleiche Problem, dass du ... 

In der Tat bestand mein Problem darin, dass die Netzwerkdienste das Anmeldekonto im Web Deploy Agent-Dienst waren und das Konto nicht über ausreichende Berechtigungen zum Ändern oder Lesen verfügt. IIS Dateien ...

Um Ihr Problem zu lösen, führen Sie einfach die folgenden Schritte aus:

Öffnen Sie die Services Painel (services.msc)
Suchen Sie den Web Deploy Agent-Dienst und Doppelklicken Sie, um den Web Deploy Agent-Dienst Eigenschaften zu öffnen Administratorkonto ...

Ich hoffe dir helfen

0
Ricardo Almeida

Web Deploy funktionierte gestern nicht mehr, wenn die aktuelle Windows-Benutzeridentität verwendet wurde (es arbeitete mit expliziten Anmeldeinformationen), nachdem die Patches für MS15-025 und MS15-027 auf einem unserer ausgeführten Domänencontroller installiert wurden Windows Server 2003.

Wir haben alle Empfehlungen für Web Deploy geprüft und konnten den HTTP 401.2-Fehler nicht beheben.

Microsoft hat jetzt die Patches für beide Bulletins speziell für Windows Server 2003 (KB3033395-v2 und KB3002657-v2) neu herausgegeben. Nach der Installation der aktualisierten Patches und dem Booten des Domänencontrollers funktionierte er sofort wieder. Wir mussten nicht einmal einen Dienst auf dem Webserver neu starten. 

Es gab keine Ereignisprotokolleinträge, die darauf hindeuteten, es wurde nur aufgrund der zeitlichen Beziehung offensichtlich.

0

Es gibt noch eine weitere Möglichkeit: Ihr Konto wurde gesperrt, weil zu viele Versuche fehlgeschlagen waren, die Bereitstellung mit Web Deployment durchzuführen. Setzen Sie Ihr Konto zurück oder lassen Sie Ihren Systemadministrator das für Sie erledigen. Sehr frustrierend.

0
saille