Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: Internet Information Services
Ten artykuł ułatwia rozwiązywanie problemów z serią błędów podczas próby opublikowania z programu Visual Studio na serwerze, który nie jest poprawnie skonfigurowany za pośrednictwem narzędzia Web Deploy. Chociaż artykuł jest napisany dla określonych wersji produktu, koncepcje można również zastosować do nowszych wersji.
Aby zebrać poniższe zrzuty ekranu i błędy, użyj nowego projektu MVC ASP.NET w programie Visual Studio. Serwer docelowy był czystą instalacją systemu Windows Server z usługami Internet Information Services (IIS). Nie wykonano żadnej innego konfiguracji.
Nie można nawiązać połączenia z serwerem
Pierwszy błąd, który prawdopodobnie napotkasz, wygląda podobnie do poniższego zrzutu ekranu w oknie danych wyjściowych programu Visual Studio. Aby zwiększyć czytelność, pełny tekst wiadomości znajduje się na zrzucie ekranu:
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
Tekst wyróżniony w tym błędzie (i inne błędy w poniższych sekcjach) jest kluczem do zrozumienia charakteru problemu. Narzędzie Web Deploy nie odpowiedziało z serwera, więc program Visual Studio nie może odróżnić kilku możliwych przyczyn. W rezultacie daje listę rzeczy do wypróbowania.
Czy usługa zarządzania siecią Web jest zainstalowana?
Na serwerze USŁUG IIS otwórz Menedżera usług Internet Information Services (IIS) i wybierz węzeł nazwy komputera. W widoku Funkcje przewiń w dół do sekcji Zarządzanie i poszukaj następujących ikon:
Jeśli tam nie ma, musisz zainstalować usługę zarządzania za pomocą okna dialogowego Dodawanie usług ról. Można go również zainstalować za pośrednictwem Instalatora platformy sieci Web na karcie Produkty . Wybierz pozycję Serwer w lewej kolumnie i wybierz pozycję IIS: Usługa zarządzania.
Uwaga 16.
Po zainstalowaniu usługi zarządzania należy ją uruchomić, ponieważ nie jest uruchamiana automatycznie. W tym celu kliknij dwukrotnie ikonę Usługa zarządzania. Po wyświetleniu okienka Usługa zarządzania wybierz pozycję Uruchom w okienku Akcje po prawej stronie.
Czy adres URL usługi jest poprawny?
Domyślnie usługa zarządzania siecią Web nasłuchuje na porcie 8172, ale to ustawienie można zmienić. Najprostszym sposobem sprawdzenia, jaki port jest używany, jest otwarcie okienka Usługa zarządzania zgodnie z wcześniejszym opisem i zapoznanie się z informacjami o adresach IP i portach w sekcji Połączenia. Jeśli port został zmieniony na inny niż 8172, musisz upewnić się, że nowy port jest dozwolony przez zaporę i zaktualizować adres URL usługi w ustawieniach publikowania programu Visual Studio, aby użyć nowego portu.
(403) Zabronione
Po zainstalowaniu usługi zarządzania siecią Web program Visual Studio może wyświetlić następujący błąd:
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.
Ten komunikat jest mylący. Stwierdza się, że serwer nie odpowiedział, ale błąd 403 wskazuje, że narzędzie Web Deploy może skontaktować się z serwerem, ale żądanie zostało aktywnie odrzucone. Dziennik HTTP usługi zarządzania siecią Web może pomóc potwierdzić, że żądanie dotarło do serwera i podaj szczegółowe informacje o rzeczywistym żądaniu, które zakończyło się niepowodzeniem. Ten dziennik można znaleźć domyślnie.%SystemDrive%\Inetpub\logs\WMSvc
Podobnie jak w przypadku innych dzienników usług IIS, dane nie są natychmiast zapisywane w dzienniku, więc może być konieczne odczekanie kilku minut, aby zobaczyć żądanie lub ponownie uruchomić usługę zarządzania siecią Web, aby opróżnić dziennik.
W dzienniku WMSVC
zobaczysz następujący komunikat:
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
Po 6
zapisie 403
w dzienniku jest kod stanu podrzędnego i oznacza, że adres IP został odrzucony. Pełną listę kodów stanu i kodów stanu podrzędnych dla usług IIS można znaleźć na stronie Kody stanu HTTP w usługach IIS.
Czy usługa zarządzania jest skonfigurowana do zezwalania na połączenia zdalne?
Jest to najbardziej prawdopodobna przyczyna odpowiedzi 403.6. Kliknij dwukrotnie ikonę Usługa zarządzania i sprawdź, czy zaznaczono opcję Włącz połączenia zdalne. Musisz zatrzymać usługę, aby wprowadzić zmiany, więc pamiętaj, aby ją ponownie uruchomić po zakończeniu.
Czy usługa zarządzania siecią Web jest dozwolona za pośrednictwem Zapory systemu Windows?
Podczas instalowania usługi zarządzania siecią Web na serwerze reguła zapory dla ruchu przychodzącego nosi nazwę Usługa zarządzania siecią Web (RUCH HTTP). Sprawdź, czy ta reguła jest włączona, przechodząc do obszaru Start>AdministrativeTools Zapora systemu Windows z zabezpieczeniami zaawansowanymi.> Wybierz pozycję Reguły ruchu przychodzącego i znajdź regułę zarządzania siecią Web na liście. Powinna być włączona dla wszystkich profilów.
Jeśli używasz zapory innej firmy, upewnij się, że połączenia przychodzące na porcie 8172 są dozwolone.
Czy ograniczenia adresów IP zostały skonfigurowane dla usługi zarządzania?
Innym typowym powodem wystąpienia błędu 403 jest to, że usługa zarządzania została skonfigurowana do odmowy adresu IP klienta. Domyślnie jest ona skonfigurowana tak, aby zezwalała na wszystkie adresy IP, o ile połączenia zdalne są dozwolone. Ograniczenia adresów IP można sprawdzić, klikając dwukrotnie ikonę Usługa zarządzania. Wszystkie skonfigurowane reguły ograniczeń adresów IP znajdują się w dolnej części strony w ograniczeniach adresów IPv4.
(404) Nie znaleziono
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.
Błąd 404 wskazuje, że usługa Web Deploy mogła skontaktować się z usługą zarządzania siecią Web na serwerze, ale nie mogła znaleźć potrzebnych informacji. Najpierw należy potwierdzić, z jakim zasobem usługa Web Deploy próbowała nawiązać połączenie. Jeśli spojrzysz na dziennik usługi zarządzania siecią Web w obszarze %SystemDrive%\Inetpub\logs\WMSvc na serwerze docelowym, zostanie wyświetlony wpis w dzienniku WMSVC
, który wygląda następująco:
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 to procedura obsługi żądań web deploy.
Czy narzędzie Web Deploy jest zainstalowane?
Aby sprawdzić, czy narzędzie Web Deploy jest zainstalowane, przejdź do panelu sterowania Programy i funkcje i poszukaj narzędzia Microsoft Web Deploy 4.0 na liście zainstalowanych programów. Jeśli go nie ma, możesz pobrać go i zainstalować na oficjalnej stronie pobierania. Należy również upewnić się, że usługa agenta wdrażania sieci Web (MsDepSvc) jest uruchomiona.
Czy program obsługi wdrażania sieci Web jest zainstalowany?
Jeśli narzędzie Web Deploy jest zainstalowane i nadal występuje ten błąd, upewnij się, że jest zainstalowana funkcja obsługi wdrażania usług IIS w narzędziu Web Deploy. W panelu sterowania Programy i funkcje znajdź pozycję Microsoft Web Deploy 4.0, kliknij go prawym przyciskiem myszy i wybierz polecenie Zmień. W kreatorze, który pojawi się, wybierz przycisk Dalej na pierwszej stronie, a następnie wybierz pozycję Zmień na drugiej stronie. Dodaj program obsługi wdrażania usług IIS i wszystko pod nim.
Wybierz przycisk Dalej , aby ukończyć pracę Kreatora. Po wprowadzeniu tej zmiany należy ponownie uruchomić usługę zarządzania siecią Web.
(401) Brak autoryzacji
Po poprawnym skonfigurowaniu narzędzia Web Deploy i usługi zarządzania siecią Web należy skonfigurować reguły delegowania, aby umożliwić użytkownikom aktualizowanie zawartości. W przypadku problemów z uprawnieniami w programie Visual Studio może wystąpić kilka różnych błędów. Na przykład:
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.
W dzienniku WMSvc jest wyświetlany następujący komunikat:
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
Wyróżniony stan http w danych wyjściowych programu Visual Studio to błąd odmowy dostępu. Wyróżniony stan Win32 w dzienniku błędów jest mapowy na "Niepowodzenie logowania: nieznana nazwa użytkownika lub nieprawidłowe hasło", więc ten błąd jest prostym niepowodzeniem logowania. Jeśli użytkownik jest uwierzytelniony, ale nie ma praw potrzebnych do opublikowania, wpis dziennika wygląda następująco:
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
Aby zezwolić temu użytkownikowi na publikowanie, należy skonfigurować delegowanie zgodnie z instrukcjami w temacie Konfigurowanie programu obsługi wdrażania sieci Web.
Operacja nie jest autoryzowana
Jeśli konto jest w stanie się zalogować, ale nie otrzymało uprawnień wymaganych do opublikowania zawartości, zostanie wyświetlony następujący komunikat o błędzie:
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.
Dziennik WMSvc
zawiera odpowiedzi HTTP 200 dla tych żądań. Na szczęście narzędzie Web Deploy 2.1 zapisuje również informacje w dzienniku usługi Microsoft Web Deploy. Aby go wyświetlić, wybierz pozycję Podgląd zdarzeń (lokalne)>Aplikacje i usługi Dzienniki>microsoft Web Deploy.
W przypadku tego konkretnego błędu dziennik zdarzeń zawiera dodatkowe szczegóły (obcięte w celu zwięzłości):
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 ---
Ten komunikat informuje, gdzie należy udzielić uprawnień dla tego konkretnego błędu. W programie Visual Studio może zostać również wyświetlony następujący błąd uprawnień:
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.
Ten konkretny błąd nie daje wiele do zrobienia, ale obraz staje się jaśniejszy, jeśli przyjrzysz się dziennikowi błędów narzędzia Web Deploy w Podgląd zdarzeń.
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)
Z tych danych wyjściowych widać, że User1
nie ma uprawnień do ustawiania informacji zabezpieczających. W takim przypadku użytkownik nie ma uprawnień do modyfikowania zawartości. Udzielenie "Zmień uprawnienia" do zawartości rozwiązuje problem.
Inne
Jeśli nie możesz przeglądać aplikacji .NET 4.0 po pomyślnym jej opublikowaniu, może to oznaczać, że platforma .NET 4.0 nie jest poprawnie zarejestrowana w usługach IIS. Inne objawy są takie, że jest zainstalowany program .NET 4.0, ale w usługach IIS nie ma pul aplikacji platformy .NET 4.0 ani mapowań programu obsługi. Ten objaw występuje, gdy program .NET 4.0 jest zainstalowany przed zainstalowaniem usług IIS. Aby rozwiązać ten problem, uruchom wiersz polecenia z podwyższonym poziomem uprawnień i uruchom następujące polecenie:
%systemdrive%\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -iru