Поделиться через


Ошибка при просмотре веб-сайта по url-адресу домена облачной службы по умолчанию: ошибка HTTP 503. Служба недоступна

В этой статье содержатся сведения об устранении неполадок, в которых возникает ошибка HTTP 503. Служба недоступна при доступе к приложению облачной службы.

Исходная версия продукта: служба Управление API
Исходный номер базы знаний: 4464854

Примечание.

Ознакомьтесь со статьей по серии устранения неполадок облачной службы Azure, это пятый сценарий лаборатории. Убедитесь, что вы выполнили инструкции по настройке лаборатории для приложения Super Convertor по этой причине, чтобы повторно создать проблему.

Симптомы

При просмотре URL-адресаhttp://cloudservicelabs.cloudapp.net/ приложения облачной службы возникает ошибка HTTP 503, хотя веб-роль SuperConvertor находится в состоянии выполнения. Перезагрузка или повторное создание экземпляра роли не устраняет проблему.

Служба недоступна

Ошибка HTTP 503. Служба недоступна.

Действия по устранению неполадок

При получении 50x ошибок в приложении обычно это означает, что что-то сломано на стороне сервера. 503 Service Unavailable Код ответа на ошибку сервера указывает, что сервер не готов обрабатывать запрос. Вы должны думать, почему внезапно развернутое приложение облачной службы внезапно начало вызывать эту ошибку. Происходит ли сбой приложения? Выполняется ли запрос на сервер IIS? Находится ли сервер под высокой нагрузкой?

Сначала проверьте локальный сервер IIS. Вы можете подключиться к экземпляру веб-роли с помощью RDP и просмотреть приложение локально. Прежде чем просматривать сайт локально, проверьте журналы средства просмотра событий приложений и системы, чтобы отменить любую возможность сбоя IIS ApplicationPool или других исключений, связанных с приложениями.

Затем проверьте журналы C:\Resources\directory\{Deployment ID}.SuperConvertor.DiagnosticStore\LogFiles\Web IIS, представленные ниже, чтобы проверить, можно ли получить дополнительные сведения об ошибке HTTP 503, например код подстатуса, время выполнения запроса и т. д.

Если журналов не создано, это означает, что запрос не достигает iis вообще. Согласно архитектуре IIS, HTTP.sys прослушивает HTTP-запросы из сети, передает запросы в службы IIS для обработки, а затем возвращает обработанные ответы в клиентские браузеры. По умолчанию СЛУЖБЫ IIS предоставляют HTTP.sys в качестве прослушивателя протокола, который прослушивает HTTP-запросы и HTTPS, а любая ошибка на уровне HTTP.sys регистрируется в этом каталоге. D:\Windows\System32\LogFiles\HTTPERR Итак, давайте посмотрим, что мы можем найти в журнале 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 -

Если вы видите приведенный выше журнал, HTTP 503 создается на уровне HTTP.sys, и запрос клиента отклоняется от него без достижения iis. Теперь мы будем просматривать сайт локально из IIS и видеть, что произойдет. Возможно, появится сообщение об ошибке. Эта страница не может отображаться. Одно из того, что веб-сайт IIS имеет привязку, как показано ниже, это означает, что для доступа к этому конкретному веб-сайту необходимо получить доступ по имени личного домена (www.cloudservicelabs.com)

IP-адрес Порт Заголовок узла
10.1.2.5 80 www.cloudservicelabs.com

Веб-сайты получают доступ к каждому клиенту с помощью привязок. Типичная привязка для веб-сайтов находится в виде IP:Port:HostHeader. Это механизм, который сообщает серверу, как можно достичь этого сайта. Следующий вопрос, который придет к вашему мнению, заключается в том, что откуда это пользовательское имя узла произошло.

ServiceDefinition.csdef — это место, где можно настроить привязки для веб-роли, и вот что можно увидеть для приложения:

<WebRole name="SuperConvertor" vmsize="Standard_D1_v2">
<Sites>
<Site name="Web">
<Bindings>
<Binding name="Endpoint1" endpointName="Endpoint1" hostHeader="www.cloudservicelabs.com"/></Bindings>
</Site>
</Sites>

В реальном мире для доступа к приложению облачной службы через пользовательское имя узла необходимо настроить DNS для этого заголовка узла, соответствующего виртуальному IP-адресу облачной службы. Теперь вы можете удалить атрибут hostHeader из элемента Binding и повторно развернуть решение облачной службы, чтобы устранить эту проблему.

Свяжитесь с нами для получения помощи

Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.