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.
Ten artykuł zawiera informacje dotyczące rozwiązywania problemów, w których występuje błąd "Błąd HTTP 503. Usługa jest niedostępna" podczas uzyskiwania dostępu do aplikacji usługi w chmurze.
Oryginalna wersja produktu: usługa API Management
Oryginalny numer KB: 4464854
Uwaga 16.
Zapoznaj się z artykułem dotyczącym serii rozwiązywania problemów z usługami w chmurze platformy Azure. Jest to piąty scenariusz laboratorium. Upewnij się, że wykonano instrukcje konfiguracji laboratorium dla aplikacji Super Convertor zgodnie z tym, aby odtworzyć problem.
Symptomy
Podczas przeglądania adresu URL aplikacji usługi w chmurze (http://cloudservicelabs.cloudapp.net/
), podczas przeglądania adresu URL aplikacji usługi w chmurze występuje błąd HTTP 503, mimo że rola internetowa "SuperConvertor" jest w stanie działania. Ponowne uruchamianie lub ponowne wyobrażanie wystąpienia roli nie rozwiązuje problemu.
Usługa niedostępna
Błąd HTTP 503. Usługa jest niedostępna.
Kroki rozwiązywania problemów
Gdy w aplikacji występują błędy 50x, zwykle oznacza to, że coś jest uszkodzone po stronie serwera. 503 Service Unavailable
Kod odpowiedzi na błąd serwera wskazuje, że serwer nie jest gotowy do obsługi żądania. Musisz myśleć, dlaczego nagle nowo wdrożona aplikacja usługi w chmurze nagle zaczęła zgłaszać ten błąd. Czy aplikacja ulega awarii? Czy żądanie dociera do serwera usług IIS? Czy serwer jest obciążony dużym obciążeniem?
Najpierw sprawdź lokalny serwer usług IIS. Możesz nawiązać połączenie z wystąpieniem roli internetowej przy użyciu protokołu RDP i przeglądać aplikację lokalnie. Przed przejściem do lokacji lokalnie sprawdź dzienniki podglądu zdarzeń aplikacji i systemu, aby negować wszelkie możliwości awarii puli aplikacji usług IIS lub innych wyjątków związanych z aplikacją.
Następnie sprawdź dzienniki usług IIS znajdujących się w obszarze C:\Resources\directory\{Deployment ID}.SuperConvertor.DiagnosticStore\LogFiles\Web
, aby sprawdzić, czy możesz uzyskać więcej informacji na temat błędu HTTP 503, takiego jak kod stanu podrzędnego, czas potrzebny na wykonanie żądania itd.
Jeśli nie ma wygenerowanych dzienników, oznacza to, że żądanie w ogóle nie dociera do usług IIS. Zgodnie z architekturą usług IIS HTTP.sys nasłuchuje żądań HTTP z sieci, przekazuje żądania do usług IIS na potrzeby przetwarzania, a następnie zwraca przetworzone odpowiedzi do przeglądarek klienckich. Domyślnie usługi IIS udostępniają HTTP.sys jako odbiornik protokołu, który nasłuchuje żądań HTTP i HTTPS, a wszelkie błędy na poziomie HTTP.sys są rejestrowane w tym katalogu — D:\Windows\System32\LogFiles\HTTPERR
. Zobaczmy więc, co możemy znaleźć w dzienniku HTTPErr:
#Software: Microsoft HTTP API 2.0
#Version: 1.0
#Date: 2018-08-13 03:12:38
#Fields: date time c-ip c-port s-ip s-port cs-version cs-method cs-uri streamid sc-status s-siteid s-reason s-queuename
2018-08-13 03:25:22 293.217.138.127 12052 10.1.2.5 80 HTTP/1.1 GET / - 503 - N/A -
2018-08-13 03:25:22 293.217.138.127 20463 10.1.2.5 80 HTTP/1.1 GET /favicon.ico - 503 - N/A -
Jeśli widzisz powyższy dziennik, protokół HTTP 503 jest zgłaszany z poziomu HTTP.sys, a żądanie klienta zostanie odrzucone z tego miejsca bez dotarcia do usług IIS. Teraz przejrzymy witrynę lokalnie z usług IIS i zobaczymy, co się stanie — może wystąpić błąd — nie można wyświetlić tej strony. Jedną z rzeczy, które można zauważyć, jest to, że witryna sieci Web usług IIS miała powiązanie podobne do poniższego, co oznacza, że aby uzyskać dostęp do tej konkretnej witryny sieci Web, musisz uzyskać dostęp za pośrednictwem niestandardowej nazwy domeny (www.cloudservicelabs.com
)
Adres IP | Port | Nagłówek hosta |
---|---|---|
10.1.2.5 | 80 | www.cloudservicelabs.com |
Dostęp do witryn sieci Web jest uzyskiwany przez każdego klienta przy użyciu powiązań. Typowe powiązanie dla witryn sieci Web jest w postaci adresu IP:Port:HostHeader. Jest to mechanizm, który informuje serwer, jak można uzyskać dostęp do tej lokacji. Następnym pytaniem, które przyjdzie Do głowy, jest to, skąd pochodzi ta niestandardowa nazwa hosta.
ServiceDefinition.csdef to miejsce, w którym można skonfigurować powiązania dla roli sieci Web, a oto, co można zobaczyć dla aplikacji:
<WebRole name="SuperConvertor" vmsize="Standard_D1_v2">
<Sites>
<Site name="Web">
<Bindings>
<Binding name="Endpoint1" endpointName="Endpoint1" hostHeader="www.cloudservicelabs.com"/></Bindings>
</Site>
</Sites>
W rzeczywistym scenariuszu, aby uzyskać dostęp do aplikacji usługi w chmurze za pośrednictwem niestandardowej nazwy hosta, należy skonfigurować system DNS dla tego nagłówka hosta odpowiadającego adresowi VIP usługi w chmurze. Na razie możesz usunąć atrybut hostHeader z elementu Binding i ponownie wdrożyć rozwiązanie usługi w chmurze, aby rozwiązać ten problem.
Skontaktuj się z nami, aby uzyskać pomoc
Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii na temat platformy Azure.