Behandeln von Problemen mit der Webbereitstellung mit Visual Studio
Gilt für: Internetinformationsdienste
In diesem Artikel können Sie eine Reihe von Fehlern beheben, wenn Sie versuchen, von Visual Studio auf einem Server zu veröffentlichen, der nicht ordnungsgemäß über Web Deploy konfiguriert ist. Obwohl der Artikel für bestimmte Produktversionen geschrieben ist, können die Konzepte auch auf neuere Versionen angewendet werden.
Verwenden Sie ein neues ASP.NET MVC-Projekt in Visual Studio, um die folgenden Screenshots und Fehler zu erfassen. Der Zielserver war eine Neuinstallation von Windows Server mit Internetinformationsdienste (IIS). Es wurde keine andere Konfiguration durchgeführt.
Verbindung mit dem Server kann nicht hergestellt werden.
Der erste Fehler, auf den Sie wahrscheinlich stoßen, sieht wie der folgende Screenshot im Ausgabefenster von Visual Studio aus. Zur besseren Lesbarkeit wird der vollständige Text der Nachricht unter dem Screenshot bereitgestellt:
Web deployment task failed.(Could not connect to the destination computer ("deployserver").On the destination computer, make sure that Web Deploy is installed and that the required process("The Web Management Service") is started.)
This error indicates that you cannot connect to the server. Make sure the service URL is correct,firewall and network settings on this computer and on the server computer are configured properly,and the appropriate services have been started on the server.
Error details:
Could not connect to the destination computer ("deployserver"). On the destination computer,
make sure that Web Deploy is installed and that the required process
("The Web Management Service") is started.
Unable to connect to the remote server
A connection attempt failed because the connected party did not properly respond after a period
of time, or established connection failed because connected host has failed to respond 192.168.0.211:8172
Der in diesem Fehler hervorgehobene Text (und die anderen Fehler in den folgenden Abschnitten) sind der Schlüssel zum Verständnis der Art des Problems. Web Deploy hat keine Antwort vom Server erhalten, sodass Visual Studio nicht zwischen mehreren möglichen Ursachen unterscheiden kann. Daher gibt es eine Liste von Dingen, die Sie ausprobieren können.
Ist der Webdienst installiert?
Öffnen Sie auf dem IIS-Server Internetinformationsdienste(IIS)-Manager, und wählen Sie den Computernamenknoten aus. Scrollen Sie in der Ansicht "Features " nach unten zum Abschnitt "Verwaltung ", und suchen Sie nach den folgenden Symbolen:
Wenn sie nicht vorhanden sind, müssen Sie den Verwaltungsdienst über das Dialogfeld "Rollendienste hinzufügen" installieren. Sie kann auch über den Webplattform-Installer auf der Registerkarte "Produkte" installiert werden. Wählen Sie "Server" in der linken Spalte aus, und wählen Sie "IIS: Verwaltungsdienst" aus.
Notiz
Nachdem Sie den Verwaltungsdienst installiert haben, müssen Sie ihn starten, da er nicht automatisch gestartet wird. Doppelklicken Sie hierzu auf das Verwaltungsdienstsymbol . Nachdem der Verwaltungsdienstbereich angezeigt wurde, wählen Sie "Start " im Bereich "Aktionen " auf der rechten Seite aus.
Ist die Dienst-URL korrekt?
Standardmäßig lauscht der Webdienst auf Port 8172, diese Einstellung kann jedoch geändert werden. Die einfachste Möglichkeit, zu überprüfen, welcher Port verwendet wird, besteht darin, den Verwaltungsdienstbereich wie zuvor beschrieben zu öffnen und die IP- und Portinformationen im Abschnitt "Verbindungen" anzuzeigen. Wenn der Port in einen anderen Port als 8172 geändert wurde, müssen Sie sicherstellen, dass der neue Port über die Firewall zulässig ist, und die Dienst-URL in den Veröffentlichungseinstellungen von Visual Studio aktualisieren, um den neuen Port zu verwenden.
(403) Unzulässig
Nachdem der Webdienst installiert wurde, zeigt Visual Studio möglicherweise den folgenden Fehler an:
Web deployment task failed.(Could not connect to the destination computer ("deployserver") using
the specified process ("The Web Management Service") because the server did not respond.
Make sure that the process ("The Web Management Service") is started on the destination computer.)
Could not connect to the destination computer ("deployserver") using the specified process
("The Web Management Service") because the server did not respond. Make sure that the process
("The Web Management Service") is started on the destination computer.
The remote server returned an error: (403) Forbidden.
Diese Nachricht ist irreführend. Es gibt an, dass der Server nicht reagiert hat, aber der 403-Fehler gibt an, dass Web Deploy den Server kontaktieren konnte, die Anforderung wurde jedoch aktiv abgelehnt. Das HTTP-Protokoll für den Webdienst kann helfen, zu bestätigen, dass die Anforderung den Server erreicht hat, und Details zur tatsächlichen Anforderung bereitstellen, die fehlgeschlagen ist. Dieses Protokoll finden Sie standardmäßig unter %SystemDrive%\Inetpub\logs\WMSvc
. Wie andere IIS-Protokolle werden Daten nicht sofort in das Protokoll geschrieben, daher müssen Sie möglicherweise einige Minuten warten, um die Anforderung anzuzeigen oder den Webverwaltungsdienst neu zu starten, um das Protokoll zu leeren.
WMSVC
Im Protokoll wird die folgende Meldung angezeigt:
2011-06-02 17:59:05 192.168.0.211 POST /msdeploy.axd site=default%20web%20site 8172 - 192.168.0.203 - 403 6 5 1669
Nach 6
dem 403
Protokoll ist der Unterstatuscode und bedeutet, dass die IP-Adresse abgelehnt wurde. Eine vollständige Liste der Status- und Unterstatuscodes für IIS finden Sie unter HTTP-Statuscodes in IIS.
Ist der Verwaltungsdienst so konfiguriert, dass er Remoteverbindungen zulässt?
Dies ist der wahrscheinlichste Grund für die Antwort 403.6. Doppelklicken Sie auf das Verwaltungsdienstsymbol , und vergewissern Sie sich, dass "Remoteverbindungen aktivieren" aktiviert ist. Sie müssen den Dienst beenden, um Änderungen vorzunehmen, also achten Sie darauf, ihn neu zu starten, wenn Sie fertig sind.
Wurde der Webdienst über die Windows-Firewall zugelassen?
Wenn Sie den Webdienst auf dem Server installieren, wird eine eingehende Firewallregel als Webdienst (HTTP-Datenverkehr-In) bezeichnet. Stellen Sie sicher, dass diese Regel aktiviert ist, indem Sie die Windows-Firewall mit erweiterter Sicherheit starten>>. Wählen Sie "Eingehende Regeln" aus, und suchen Sie die Webverwaltungsregel in der Liste. Sie sollte für alle Profile aktiviert sein.
Wenn Sie eine Firewall eines Drittanbieters verwenden, müssen Sie sicherstellen, dass eingehende Verbindungen an Port 8172 zulässig sind.
Wurden für den Verwaltungsdienst IP-Einschränkungen konfiguriert?
Der andere häufige Grund für den Fehler 403 ist, dass der Verwaltungsdienst so konfiguriert wurde, dass die IP des Clients verweigert wird. Standardmäßig ist sie so konfiguriert, dass alle IPs zugelassen werden, solange Remoteverbindungen zulässig sind. Sie können auf IP-Einschränkungen überprüfen, indem Sie auf das Verwaltungsdienstsymbol doppelklicken. Alle konfigurierten IP-Einschränkungsregeln befinden sich unten auf der Seite in den IPv4-Adresseinschränkungen.
404 Nicht gefunden
Web deployment task failed.(Could not connect to the destination computer ("deployserver").
On the destination computer, make sure that Web Deploy is installed and that the required process
("The Web Management Service") is started.
The requested resource does not exist, or the requested URL is incorrect.
Error details: Could not connect to the destination computer ("deployserver").
On the destination computer, make sure that Web Deploy is installed and that the required process
("The Web Management Service") is started.
The remote server returned an error: (404) Not Found.
Der Fehler 404 weist darauf hin, dass Web Deploy den Webdienst auf dem Server kontaktieren konnte, aber nicht finden konnte, was er benötigt. Als Erstes müssen Sie überprüfen, mit welcher Ressource Web Deploy eine Verbindung hergestellt werden soll. Wenn Sie sich das Webverwaltungsdienstprotokoll unter %SystemDrive%\Inetpub\logs\WMSvc auf dem Zielserver ansehen, wird ein Eintrag im Protokoll angezeigt, der WMSVC
wie folgt aussieht:
2011-05-12 15:21:50 192.168.0.211 POST /msdeploy.axd site=default%20web%20site 8172 - 192.168.0.203 - 404 7 0 1606
Msdeploy.axd ist der Handler für Web Deploy-Anforderungen.
Ist Web Deploy installiert?
Sie können überprüfen, ob Web Deploy installiert ist, indem Sie zur Systemsteuerung "Programme und Features" wechseln und in der Liste der installierten Programme nach Microsoft Web Deploy 4.0 suchen. Wenn sie nicht vorhanden ist, können Sie es von der offiziellen Downloadseite herunterladen und installieren. Sie sollten auch sicherstellen, dass der Webbereitstellungs-Agent-Dienst (MsDepSvc) ausgeführt wird.
Ist der Webbereitstellungshandler installiert?
Wenn Web Deploy installiert ist und Dieser Fehler weiterhin angezeigt wird, stellen Sie sicher, dass das Feature "IIS-Bereitstellungshandler " in Web Deploy installiert ist. Suchen Sie in der Systemsteuerung "Programme und Features" nach Microsoft Web Deploy 4.0, klicken Sie mit der rechten Maustaste darauf, und wählen Sie "Ändern" aus. Wählen Sie im angezeigten Assistenten auf der ersten Seite "Weiter" und dann auf der zweiten Seite "Ändern" aus. Fügen Sie den IIS-Bereitstellungshandler und alles darin hinzu.
Wählen Sie "Weiter" aus, um den Assistenten abzuschließen. Sie müssen den Webdienst neu starten, nachdem Sie diese Änderung vorgenommen haben.
401 – Nicht autorisiert
Nachdem Web Deploy und der Webdienst ordnungsgemäß konfiguriert wurden, müssen Sie Delegierungsregeln einrichten, damit Benutzer Inhalte aktualisieren können. Bei Berechtigungsproblemen gibt es verschiedene Fehler, die in Visual Studio möglicherweise angezeigt werden. Zum Beispiel:
Web deployment task failed.(Connected to the destination computer ("deployserver")
using the Web Management Service, but could not authorize.
Make sure that you are using the correct user name and password, that the site you are connecting
to exists, and that the credentials represent a user who has permissions to access the site.
Make sure the site name, user name, and password are correct. If the issue is not resolved,
please contact your local or server administrator.
Error details:
Connected to the destination computer ("deployserver") using the Web Management Service,
but could not authorize. Make sure that you are using the correct user name and password,
that the site you are connecting to exists, and that the credentials represent a user who
has permissions to access the site.
The remote server returned an error: (401) Unauthorized.
Im WMSvc-Protokoll wird die folgende Meldung angezeigt:
2011-05-12 15:50:12 192.168.0.211 POST /msdeploy.axd site=default%20web%20site 8172 - 192.168.0.203 - 401 2 5 1653
2011-05-12 15:50:12 192.168.0.211 POST /msdeploy.axd site=default%20web%20site 8172 user1 192.168.0.203 - 401 1 1326 124
Der hervorgehobene HTTP-Status in der Visual Studio-Ausgabe ist ein „Zugriff verweigert“-Fehler. Der hervorgehobene Win32-Status im Fehlerprotokoll entspricht "Anmeldefehler: unbekannter Benutzername oder ungültiges Kennwort", sodass dieser Fehler ein einfacher Anmeldefehler ist. Wenn der Benutzer authentifiziert ist, aber nicht über die zum Veröffentlichen erforderlichen Rechte verfügt, sieht der Protokolleintrag wie folgt aus:
2011-05-12 15:55:38 192.168.0.211 POST /msdeploy.axd site=default%20web%20site 8172 - 192.168.0.203 - 401 2 5 0
Damit dieser Benutzer veröffentlichen kann, müssen Sie die Delegierung gemäß den Anweisungen unter Konfigurieren des Webbereitstellungshandlers einrichten.
Vorgang nicht autorisiert
Wenn sich das Konto anmelden kann, aber nicht den Zum Veröffentlichen des Inhalts erforderlichen Rechte gewährt wurde, wird die folgende Fehlermeldung angezeigt:
Web deployment task failed. (Unable to perform the operation ("Create Directory") for the specified
directory ("bin"). This can occur if the server administrator has not authorized this operation for
the user credentials you are using.
Das WMSvc
Protokoll zeigt HTTP 200-Antworten für diese Anforderungen an. Glücklicherweise schreibt Web Deploy 2.1 auch Informationen in das Protokoll des Microsoft Web Deploy-Diensts. Wählen Sie zum Anzeigen Ereignisanzeige (lokal)>Anwendungen und Dienste protokolle>Microsoft Web Deploy aus.
Für diesen bestimmten Fehler enthält das Ereignisprotokoll zusätzliche Details (aus Platzgründen abgeschnitten):
User: DEPLOYSERVER\User1
Client IP: 192.168.0.203
Content-Type: application/msdeploy
Version: 8.0.0.0
MSDeploy.VersionMin: 7.1.600.0
MSDeploy.VersionMax: 7.1.1070.1
MSDeploy.Method: Sync
MSDeploy.RequestId: 50de0746-f10d-4640-9b3d-4ba773520e38
MSDeploy.RequestCulture: en-US
MSDeploy.RequestUICulture: en-US
Skip: objectName="^configProtectedData$"
Provider: auto, Path:
Tracing deployment agent exception. Request ID '50de0746-f10d-4640-9b3d-4ba773520e38'. Request Timestamp: '5/12/2011 9:18:12 AM'. Error Details:
Microsoft.Web.Deployment.DeploymentDetailedUnauthorizedAccessException: Unable to perform the operation ("Create Directory")
for the specified directory ("C:\inetpub\wwwroot\bin"). This can occur if the server administrator has not authorized this
operation for the user credentials you are using.
---> Microsoft.Web.Deployment.DeploymentException: The error code was 0x80070005. ---> System.UnauthorizedAccessException:
Access to the path 'C:\inetpub\wwwroot\bin' is denied.
at Microsoft.Web.Deployment.Win32Native.RaiseIOExceptionFromErrorCode(Win32ErrorCode errorCode, String maybeFullPath)
at Microsoft.Web.Deployment.DirectoryEx.CreateDirectory(String path)
at Microsoft.Web.Deployment.DirPathProvider.CreateDirectory(String fullPath, DeploymentObject source)
at Microsoft.Web.Deployment.DirPathProvider.Add(DeploymentObject source, Boolean whatIf)
--- End of inner exception stack trace ---
--- End of inner exception stack trace ---
Diese Meldung informiert Sie darüber, wo die Berechtigungen für diesen speziellen Fehler erteilt werden müssen. Möglicherweise wird auch der folgende Berechtigungsfehler in Visual Studio angezeigt:
Web deployment task failed.((5/12/2011 11:31:41 AM) An error occurred when the request was processed on the remote computer.)
(5/12/2011 11:31:41 AM) An error occurred when the request was processed on the remote computer.
The server experienced an issue processing the request. Contact the server administrator for more information.
Dieser spezielle Fehler gibt Ihnen nicht viel, aber das Bild wird klarer, wenn Sie sich das Web Deploy-Fehlerprotokoll im Ereignisanzeige ansehen.
User: DEPLOYSERVER\User1
Client IP: 192.168.0.203
Content-Type: application/msdeploy
Version: 8.0.0.0
MSDeploy.VersionMin: 7.1.600.0
MSDeploy.VersionMax: 7.1.1070.1
MSDeploy.Method: Sync
MSDeploy.RequestId: 63b2f3d1-1817-444f-8280-9fa4f6f85d53
MSDeploy.RequestCulture: en-US
MSDeploy.RequestUICulture: en-US
Skip: objectName="^configProtectedData$"
Provider: auto, Path:
Tracing deployment agent exception. Request ID '63b2f3d1-1817-444f-8280-9fa4f6f85d53'. Request Timestamp: '5/12/2011 9:31:41 AM'. Error Details:
System.UnauthorizedAccessException: Attempted to perform an unauthorized operation.
at System.Security.AccessControl.Win32.SetSecurityInfo(ResourceType type, String name, SafeHandle handle, SecurityInfos securityInformation, SecurityIdentifier owner, SecurityIdentifier group, GenericAcl sacl, GenericAcl dacl)
at System.Security.AccessControl.NativeObjectSecurity.Persist(String name, SafeHandle handle, AccessControlSections includeSections, Object exceptionContext)
at System.Security.AccessControl.NativeObjectSecurity.Persist(String name, AccessControlSections includeSections, Object exceptionContext)
at Microsoft.Web.Deployment.FileSystemSecurityEx.Persist(String path)
at Microsoft.Web.Deployment.SetAclProvider.Add(DeploymentObject source, Boolean whatIf)
at Microsoft.Web.Deployment.DeploymentObject.Update(DeploymentObject source, DeploymentSyncContext syncContext)
at Microsoft.Web.Deployment.DeploymentSyncContext.HandleUpdate(DeploymentObject destObject, DeploymentObject sourceObject)
at Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest, DeploymentObject source)
at Microsoft.Web.Deployment.DeploymentSyncContext.ProcessSync(DeploymentObject destinationObject, DeploymentObject sourceObject)
Aus dieser Ausgabe können wir sehen, dass User1
nicht über die Berechtigungen zum Festlegen von Sicherheitsinformationen verfügt. In diesem Fall verfügt der Benutzer nicht über "Berechtigungen ändern" für den Inhalt. Das Erteilen von „Änderungsrechten“ für den Inhalt behebt das Problem.
Andere
Wenn Sie nach der erfolgreichen Veröffentlichung keine .NET 4.0-Anwendung durchsuchen können, kann es sein, dass .NET 4.0 nicht ordnungsgemäß bei IIS registriert ist. Andere Symptome sind die Installation von .NET 4.0, es gibt jedoch keine .NET 4.0-Anwendungspools oder Handlerzuordnungen in IIS. Dieses Symptom tritt auf, wenn .NET 4.0 vor der Installation von IIS installiert wird. Um dieses Problem zu beheben, starten Sie eine Eingabeaufforderung mit erhöhten Rechten, und führen Sie den folgenden Befehl aus:
%systemdrive%\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -iru