Dela via


Felsöka problem med webbdistribution med Visual Studio

Gäller för: Internet Information Services

Den här artikeln hjälper dig att felsöka en serie fel när du försöker publicera från Visual Studio till en server som inte är korrekt konfigurerad via Webbdistribution. Även om artikeln är skriven för specifika produktversioner kan begreppen även tillämpas på nyare versioner.

Om du vill samla in följande skärmbilder och fel använder du ett nytt ASP.NET MVC-projekt i Visual Studio. Målservern var en ren installation av Windows Server med Internet Information Services (IIS). Ingen annan konfiguration har gjorts.

Det går inte att ansluta till servern

Det första felet som du troligen kommer att stöta på ser ut som följande skärmbild i Visual Studio-utdatafönstret. För bättre läsbarhet tillhandahålls meddelandets fullständiga text under skärmbilden:

Skärmbild som visar utdata från fellistan i Visual Studio.

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

Texten som är markerad i det här felet (och de andra felen i följande avsnitt) är nyckeln till att förstå problemets art. Web Deploy fick inget svar från servern, så Visual Studio kan inte skilja mellan flera möjliga orsaker. Det ger därför en lista över saker att prova.

Är webbhanteringstjänsten installerad?

På IIS-servern öppnar du IIS-hanteraren (Internet Information Services) och väljer noden datornamn. I vyn Funktioner rullar du ned till avsnittet Hantering och letar efter följande ikoner:

Skärmbild som visar IIS Manager-behörighetsikonen, ikonen IIS Manager-användare och ikonen Hanteringstjänst.

Om de inte finns där måste du installera hanteringstjänsten via dialogrutan Lägg till rolltjänster . Det kan också installeras via installationsprogrammet för webbplattformen på fliken Produkter . Välj Server i den vänstra kolumnen och välj IIS: Management Service.

Kommentar

När du har installerat hanteringstjänsten måste du starta den eftersom den inte startas automatiskt. Det gör du genom att dubbelklicka på ikonen Hanteringstjänst . När fönstret Hanteringstjänst visas väljer du Start i fönstret Åtgärder till höger.

Är tjänst-URL:en korrekt?

Webbhanteringstjänsten lyssnar som standard på port 8172, men den här inställningen kan ändras. Det enklaste sättet att kontrollera vilken port som används är att öppna fönstret Hanteringstjänst enligt beskrivningen ovan och titta på IP- och portinformationen i avsnittet Anslutningar. Om porten har ändrats till något annat än 8172 måste du se till att den nya porten tillåts via brandväggen och uppdatera tjänst-URL:en i Visual Studios publiceringsinställningar så att den nya porten används.

(403) Förbjudet

När webbhanteringstjänsten har installerats kan Visual Studio visa följande fel:

Skärmbild som visar skärmen Fellista i Visual Studio.

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.

Det här meddelandet är missvisande. Det står att servern inte svarade, men 403-felet anger att Webbdistribution kan kontakta servern, men begäran nekades aktivt. HTTP-loggen för webbhanteringstjänsten kan hjälpa dig att bekräfta att begäran har nått servern och ange information om den faktiska begäran som misslyckades. Den här loggen finns som %SystemDrive%\Inetpub\logs\WMSvc standard. Precis som andra IIS-loggar skrivs inte data till loggen omedelbart, så du kan behöva vänta några minuter för att se begäran eller starta om webbhanteringstjänsten för att tömma loggen.

I loggen WMSVC visas följande meddelande:

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

Efter 6403 i loggen är understatuskoden och innebär att IP-adressen avvisades. En fullständig lista över status- och understatuskoderna för IIS finns på HTTP-statuskoder i IIS.

Är hanteringstjänsten konfigurerad för att tillåta fjärranslutningar?

Det här är den troligaste orsaken till svaret 403.6. Dubbelklicka på ikonen Hanteringstjänst och kontrollera att Aktivera fjärranslutningar är markerat. Du måste stoppa tjänsten för att göra ändringar, så se till att starta om den när du är klar.

Skärmbild som visar dialogrutan Hanteringstjänst.

Har webbhanteringstjänsten tillåtits via Windows-brandväggen?

När du installerar webbhanteringstjänsten på servern får en inkommande brandväggsregel namnet Web Management Service (HTTP Traffic-In). Kontrollera att den här regeln är aktiverad genom att gå till Starta>AdministrativeTools>Windows-brandväggen med Avancerad säkerhet. Välj Regler för inkommande trafik och leta reda på webbhanteringsregeln i listan. Den bör vara aktiverad för alla profiler.

Om du använder en brandvägg från tredje part måste du se till att inkommande anslutningar på port 8172 tillåts.

Har IP-begränsningar konfigurerats för hanteringstjänsten?

Den andra vanliga orsaken till att du kan få ett 403-fel är att hanteringstjänsten har konfigurerats för att neka klientens IP-adress. Som standard är den konfigurerad för att tillåta alla IP-adresser så länge fjärranslutningar tillåts. Du kan söka efter IP-begränsningar genom att dubbelklicka på ikonen Hanteringstjänst . Alla konfigurerade IP-begränsningsregler finns längst ned på sidan i IPv4-adressbegränsningarna.

(404) Hittades inte

Skärmbild som visar sidan Fellista i Visual Studio. Felinformationen är i fokus.

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.

404-felet anger att Web Deploy kunde kontakta webbhanteringstjänsten på servern men inte kunde hitta det som behövdes. Det första du behöver göra är att bekräfta vilken resurs Web Deploy försökte ansluta till. Om du tittar på webbhanteringstjänstens logg under %SystemDrive%\Inetpub\logs\WMSvc på målservern visas en post i loggen WMSVC som ser ut som följande:

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 är hanteraren för webbdistributionsbegäranden.

Är Web Deploy installerat?

Du kan kontrollera att Webbdistribution har installerats genom att gå till kontrollpanelen Program och funktioner och leta efter Microsoft Web Deploy 4.0 i listan över installerade program. Om den inte finns där kan du ladda ned och installera den från den officiella nedladdningssidan. Du bör också se till att Webbdistributionsagenttjänsten (MsDepSvc) körs.

Är webbdistributionshanteraren installerad?

Om Webbdistribution är installerat och du fortfarande får det här felet kontrollerar du att funktionen IIS Deployment Handler i Web Deploy är installerad. På kontrollpanelen Program och funktioner hittar du Microsoft Web Deploy 4.0, högerklickar på den och väljer Ändra. I guiden som visas väljer du Nästa på den första sidan och väljer sedan Ändra på den andra sidan. Lägg till IIS-distributionshanteraren och allt under den.

Skärmbild som visar dialogrutan Installation av Microsoft Web Deploy 4 punkt 0. Web Deployment Framework är markerat.

Välj Nästa för att slutföra guiden. Du måste starta om webbhanteringstjänsten när du har gjort den här ändringen.

(401) Obehörig

När webbdistributionen och webbhanteringstjänsten har konfigurerats korrekt måste du konfigurera delegeringsregler så att användarna kan uppdatera innehåll. För behörighetsproblem finns det flera olika fel som du kan se i Visual Studio. Till exempel:

Skärmbild som visar fellistan i Visual Studio som visar behörighetsproblem.

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.

I WMSvc-loggen kan du se följande meddelande:

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

Den markerade http-statusen i Visual Studio-utdata är ett felmeddelande om nekad åtkomst. Den markerade Win32-statusen i felloggen mappar till "Inloggningsfel: okänt användarnamn eller felaktigt lösenord", så det här felet är ett enkelt inloggningsfel. Om användaren är autentiserad men inte har de rättigheter som krävs för att publicera, ser loggposten ut som följande:

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

För att den här användaren ska kunna publicera måste du konfigurera delegering enligt anvisningarna i Konfigurera webbdistributionshanteraren.

Åtgärden är inte auktoriserad

Om kontot kan logga in men inte har beviljats de rättigheter som krävs för att publicera innehållet visas följande felmeddelande:

Skärmbild som visar sidan Fellista i Visual Studio som visar ett fel som rör användarbehörigheter.

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.

Loggen WMSvc visar HTTP 200-svar för dessa begäranden. Lyckligtvis skriver Web Deploy 2.1 också information till tjänstloggen för Microsoft Web Deploy. Om du vill visa den väljer du Loggboken (lokal)>Program- och tjänstloggar>Microsoft Web Deploy.

Skärmbild som visar menyn Loggboken. Microsoft Web Deploy är markerat.

För det här felet innehåller händelseloggen extra information (trunkerad för korthet):

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 ---

Det här meddelandet anger var behörigheter måste beviljas för det här felet. Du kan också se följande behörighetsfel i Visual Studio:

Skärmbild som visar sidan Fellista i Visual Studio med ett behörighetsfel i fokus.

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.

Det här felet ger dig inte mycket att gå på, men bilden blir tydligare om du tittar på felloggen För webbdistribution i Loggboken.

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)

Från dessa utdata kan vi se att User1 det inte har behörighet att ange säkerhetsinformation. I det här fallet har användaren inte "Ändra behörigheter" för innehållet. Att bevilja "Ändra behörigheter" till innehållet löser problemet.

Andra

Om du inte kan bläddra i ett .NET 4.0-program när du har publicerat det kan det bero på att .NET 4.0 inte har registrerats korrekt med IIS. Andra symptom är att .NET 4.0 är installerat, men det finns inga .NET 4.0-programpooler eller hanterarmappningar i IIS. Det här problemet inträffar när .NET 4.0 installeras innan IIS installeras. Lös problemet genom att starta en upphöjd kommandotolk och köra följande kommando:

%systemdrive%\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -iru

Mer information