Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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:
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:
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:
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 6
403
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.
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
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.
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:
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:
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.
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:
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