この記事では、"HTTP エラー 503" というエラーが発生する問題のトラブルシューティングに関する情報を提供します。 サービスは使用できません。クラウド サービス アプリケーションにアクセスする場合。
元の製品バージョン: API Management サービス
元の KB 番号: 4464854
Note
ラボの 5 番目のシナリオである Azure Cloud Service トラブルシューティング シリーズに関する記事を参照してください。 このに従って、Super Convertor アプリケーションのラボセットアップ手順に従って問題を再作成してください。
現象
Web ロール 'SuperConvertor' が実行中の状態ですが、クラウド サービス アプリケーションの URL (http://cloudservicelabs.cloudapp.net/
) を参照しているときに HTTP エラー 503 応答が返されます。 ロール インスタンスを再起動または再イメージ化すると、問題は解決されません。
サービス利用不可
HTTP エラー 503。 サービスを利用できません。
トラブルシューティングの手順
アプリケーションで 50 倍のエラーが発生すると、通常はサーバー側で何かが壊れていることを意味します。 503 Service Unavailable
サーバー エラー応答コードは、サーバーが要求を処理する準備ができていないことを示します。 新しくデプロイされたクラウド サービス アプリケーションが突然このエラーをスローし始めた理由を考える必要があります。 アプリケーションがクラッシュしていますか? 要求が IIS サーバーに到達していますか? サーバーの負荷は高いですか?
まず、オンプレミスの IIS サーバーを確認します。 RDP を使用して Web ロール インスタンスに接続し、アプリケーションをローカルで参照できます。 サイトをローカルで参照する前に、アプリケーションとシステムのイベント ビューアーのログを調べて、IIS ApplicationPool のクラッシュまたはその他のアプリケーション関連の例外の可能性を否定します。
次に、 C:\Resources\directory\{Deployment ID}.SuperConvertor.DiagnosticStore\LogFiles\Web
の下にある IIS ログを調べて、副ステータス コードや要求の実行にかかる時間など、HTTP 503 エラーに関する詳細情報を取得できるかどうかを確認します。
生成されたログがない場合は、要求が IIS にまったく到達しないことを意味します。 IIS アーキテクチャに従って、HTTP.sysはネットワークからの HTTP 要求をリッスンし、その要求を IIS に渡して処理し、処理された応答をクライアント ブラウザーに返します。 既定では、IIS は HTTP 要求と HTTPS 要求をリッスンするプロトコル リスナーとしてHTTP.sysを提供し、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 からサイトをローカルで参照し、何が起こるかを確認します。エラーが発生する可能性があります- このページは表示できません。あなたが気づくかもしれないことの1つは、IIS Webサイトが以下のようなバインディングを持っていたということです。つまり、この特定のWebサイトにアクセスするには、カスタムドメイン名(www.cloudservicelabs.com
)経由でアクセスする必要があります
IP アドレス | ポート | ホスト ヘッダー |
---|---|---|
10.1.2.5 | 80 | www.cloudservicelabs.com |
Web サイトには、バインドを使用してすべてのクライアントがアクセスします。 Web サイトの一般的なバインディングは、IP:Port:HostHeader の形式です。 このサイトに到達する方法をサーバーに伝えるメカニズムです。 次に思い浮かぶのは、このカスタム ホスト名はどこから来たのかということです。
ServiceDefinition.csdef は、Web ロールのバインドを構成できる場所であり、アプリケーションに表示される可能性がある内容を次に示します。
<WebRole name="SuperConvertor" vmsize="Standard_D1_v2">
<Sites>
<Site name="Web">
<Bindings>
<Binding name="Endpoint1" endpointName="Endpoint1" hostHeader="www.cloudservicelabs.com"/></Bindings>
</Site>
</Sites>
実際のシナリオでは、カスタム ホスト名を使用してクラウド サービス アプリケーションにアクセスするには、クラウド サービス VIP に対応するこのホスト ヘッダー用に DNS を構成する必要があります。 ここでは、Binding 要素から hostHeader 属性を削除し、クラウド サービス ソリューションを再デプロイして問題を解決できます。
お問い合わせはこちらから
質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。