Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo fornisce informazioni sulla risoluzione dei problemi in cui viene visualizzato un errore "Errore HTTP 503. Il servizio non è disponibile." quando si accede all'applicazione del servizio cloud.
Versione originale del prodotto: servizio Gestione API
Numero KB originale: 4464854
Note
Fare riferimento all'articolo sulla serie di risoluzione dei problemi del servizio cloud di Azure, questo è il quinto scenario del lab. Assicurarsi di aver seguito le istruzioni di configurazione del lab per l'applicazione Super Convertor in base a questa situazione, per ricreare il problema.
Sintomi
Viene visualizzata la risposta http errore 503 durante l'esplorazione dell'URL dell'applicazione del servizio cloud (http://cloudservicelabs.cloudapp.net/
), anche se il ruolo Web "SuperConvertor" è in esecuzione. Il riavvio o la ricreazione dell'istanza del ruolo non risolve il problema.
Servizio non disponibile
Errore HTTP 503. Il servizio non è disponibile.
Passaggi per la risoluzione dei problemi
Quando si ricevono errori 50x nell'applicazione, in genere significa che qualcosa è danneggiato sul lato server. 503 Service Unavailable
il codice di risposta di errore del server indica che il server non è pronto per gestire la richiesta. È necessario pensare al motivo per cui improvvisamente un'applicazione del servizio cloud appena distribuita ha iniziato a generare questo errore. L'applicazione si arresta in modo anomalo? La richiesta raggiunge il server IIS? Il server è sottoposto a carico elevato?
In primo luogo, controllare il server IIS locale. È possibile connettersi all'istanza del ruolo Web usando RDP ed esplorare l'applicazione in locale. Prima di esplorare il sito in locale, controllare i log del Visualizzatore eventi dell'applicazione e del sistema per negare qualsiasi possibilità di arresto anomalo di IIS ApplicationPool o qualsiasi altra eccezione correlata all'applicazione.
Controllare quindi i log IIS presenti in C:\Resources\directory\{Deployment ID}.SuperConvertor.DiagnosticStore\LogFiles\Web
per verificare se è possibile ottenere altre informazioni sull'errore HTTP 503, ad esempio codice stato secondario, tempo impiegato per eseguire la richiesta e così via.
Se non sono stati generati log, significa che la richiesta non raggiunge affatto IIS. In base all'architettura IIS, HTTP.sys in ascolto delle richieste HTTP dalla rete, passa le richieste a IIS per l'elaborazione e quindi restituisce risposte elaborate ai browser client. Per impostazione predefinita, IIS fornisce HTTP.sys come listener del protocollo in ascolto delle richieste HTTP e HTTPS e qualsiasi errore a livello di HTTP.sys viene registrato in questa directory : D:\Windows\System32\LogFiles\HTTPERR
. Di seguito sono riportate le informazioni disponibili nel log 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 -
Se viene visualizzato il log precedente, viene generato HTTP 503 dal livello di HTTP.sys e la richiesta client viene rifiutata da questa posizione senza raggiungere IIS. A questo punto, si esaminerà il sito in locale da IIS e si vedrà cosa accade- È possibile che venga visualizzato un errore: questa pagina non può essere visualizzata. Un aspetto che si potrebbe notare è che il sito Web IIS aveva un binding come quello riportato di seguito, il che significa che per accedere a questo particolare sito Web è necessario accedere tramite il nome di dominio personalizzato (www.cloudservicelabs.com
)
Indirizzo IP | Porta | Intestazione host |
---|---|---|
10.1.2.5 | 80 | www.cloudservicelabs.com |
I siti Web sono accessibili da ogni client tramite associazioni. Un'associazione tipica per i siti Web è sotto forma di IP:Port:HostHeader. Si tratta di un meccanismo che indica al server come è possibile raggiungere il sito. La domanda successiva che verrà in mente è che da dove proviene questo nome host personalizzato.
ServiceDefinition.csdef è la posizione in cui è possibile configurare le associazioni per il ruolo Web. Di seguito è riportato ciò che potrebbe essere visualizzato per l'applicazione:
<WebRole name="SuperConvertor" vmsize="Standard_D1_v2">
<Sites>
<Site name="Web">
<Bindings>
<Binding name="Endpoint1" endpointName="Endpoint1" hostHeader="www.cloudservicelabs.com"/></Bindings>
</Site>
</Sites>
Nello scenario reale, per accedere all'applicazione del servizio cloud tramite un nome host personalizzato, è necessario avere un DNS configurato per questa intestazione host corrispondente all'indirizzo VIP del servizio cloud. Per il momento, è possibile eliminare l'attributo hostHeader dall'elemento Binding e ridistribuire la soluzione del servizio cloud per risolvere il problema.
Contattaci per ricevere assistenza
In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.