Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo fornece informações sobre como solucionar problemas nos quais você recebe um erro "Erro HTTP 503. O serviço não está disponível." ao acessar seu aplicativo de serviço de nuvem.
Versão original do produto: Serviço de Gerenciamento de API
Número original do KB: 4464854
Observação
Consulte o artigo sobre a Série de Solução de Problemas do Serviço de Nuvem do Azure, este é o quinto cenário do laboratório. Certifique-se de ter seguido as instruções de configuração do laboratório para o aplicativo Super Convertor de acordo com isso, para recriar o problema.
Sintomas
Você está recebendo a resposta HTTP Error 503 ao navegar na URL do aplicativo de serviço de nuvem (http://cloudservicelabs.cloudapp.net/
), embora sua função Web 'SuperConvertor' esteja em estado de execução. Reinicializar ou recriar a imagem da instância de função não está resolvendo o problema.
Serviço indisponível
Erro HTTP 503. O serviço está indisponível.
Etapas para solucionar problemas
Quando você recebe erros 50x em seu aplicativo, geralmente significa que algo está quebrado no lado do servidor. 503 Service Unavailable
O código de resposta de erro do servidor indica que o servidor não está pronto para lidar com a solicitação. Você deve estar pensando por que, de repente, um aplicativo de serviço em nuvem recém-implantado de repente começou a gerar esse erro. O aplicativo está travando? A solicitação está chegando ao servidor IIS? O servidor está sob alta carga?
Em primeiro lugar, verifique o servidor IIS local. Você pode se conectar à instância da função Web usando RDP e procurar o aplicativo localmente. Antes de navegar localmente no site, verifique os logs do visualizador de eventos do aplicativo e do sistema para negar qualquer possibilidade de falha do IIS ApplicationPool ou qualquer outra exceção relacionada ao aplicativo.
Em seguida, verifique os logs do IIS presentes para C:\Resources\directory\{Deployment ID}.SuperConvertor.DiagnosticStore\LogFiles\Web
verificar se você pode obter mais informações sobre o erro HTTP 503, como código de substatus, tempo necessário para executar a solicitação e assim por diante.
Se não houver logs gerados, isso significa que a solicitação não está chegando ao IIS. De acordo com a arquitetura do IIS, HTTP.sys escuta solicitações HTTP da rede, passa as solicitações para o IIS para processamento e, em seguida, retorna respostas processadas aos navegadores do cliente. Por padrão, o IIS fornece HTTP.sys como o ouvinte de protocolo que escuta solicitações HTTP e HTTPS e qualquer erro em HTTP.sys nível é registrado neste diretório - D:\Windows\System32\LogFiles\HTTPERR
. Então, vamos ver o que podemos encontrar no 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 você vir o log acima, o HTTP 503 será lançado de HTTP.sys nível e a solicitação do cliente será rejeitada de lá sem chegar ao IIS. Agora vamos navegar no site localmente do IIS e ver o que acontece - Você pode receber um erro - Esta página não pode ser exibida. Uma coisa que você pode notar é que o site do IIS estava tendo uma ligação como abaixo, o que significa que, para acessar esse site específico, você precisa acessar o nome de domínio personalizado (www.cloudservicelabs.com
)
Endereço IP | Porta | Cabeçalho de Host |
---|---|---|
10.1.2.5 | 80 | www.cloudservicelabs.com |
Os sites são acessados por todos os clientes usando associações. Uma associação típica para sites está na forma de IP:Port:HostHeader. É um mecanismo que informa ao servidor como esse site pode ser acessado. A próxima pergunta que virá à sua mente é de onde veio esse nome de host personalizado.
ServiceDefinition.csdef é o local onde você pode configurar as associações para sua função Web e aqui está o que você pode ver para seu aplicativo:
<WebRole name="SuperConvertor" vmsize="Standard_D1_v2">
<Sites>
<Site name="Web">
<Bindings>
<Binding name="Endpoint1" endpointName="Endpoint1" hostHeader="www.cloudservicelabs.com"/></Bindings>
</Site>
</Sites>
No cenário do mundo real, para acessar seu aplicativo de serviço de nuvem por meio de um nome de host personalizado, você precisa ter um DNS configurado para esse cabeçalho de host correspondente ao VIP do serviço de nuvem. Por enquanto, você pode excluir o atributo hostHeader do elemento Binding e reimplantar sua solução de serviço de nuvem para resolver o problema.
Entre em contato conosco para obter ajuda
Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.