HTTPエラーの原因503 ^
HTTPエラー503は、500 –内部サーバーエラーに加えて、IISでホストされているWebサイトで発生する可能性のあるもう1つの非常に一般的なエラーです。
このエラーの主な理由は、アプリケーションプールが停止または無効になっていることです。 アプリケーションプールは、ワーカープロセスを開始するIISコンポーネントであり、これにより、WebサーバーがWebサイトへの着信要求を処理できるようになります。 アプリケーションプールに問題がある場合、WebサーバーはHTTPエラー503をスローします。
迅速な失敗の保護 ^
アプリケーションプールの障害には、コード内の未処理の例外、アプリケーションプールIDの期限切れのパスワードなど、さまざまな理由が考えられます。 既定では、IISは、ワーカープロセスが5分以内に5回連続してクラッシュした場合に、誤動作しているアプリケーションプールを無効にするように構成されています。 この設定は、Rapid-FailProtectionと呼ばれます。、 これは、アプリケーションプールの詳細設定で利用できます。 これは、次のスクリーンショットに示されています。
- 有効-値 真実 は、ラピッドフェイル保護機能がアクティブであることを示します。これはデフォルトです。 値をに設定します 間違い 無効にします。
- 失敗間隔(分)-プロセスの失敗をカウントする分数(デフォルトでは5)を指定する時間間隔。
- 最大の失敗-上記の時間間隔内に許可される障害の最大数(デフォルトでは5)。
アプリケーションプール関連の問題のトラブルシューティング中に、必要に応じてこれらのパラメーターを変更できます。
HTTPエラー503のデバッグ ^
アプリケーションプールが無効または停止されている正確な理由を特定するには、イベントビューアを開き、に移動します。 システム ログに記録し、ソースがWindows Process Activation Serviceであるエラーまたは警告イベントを探します(だった)。 WASは、アプリケーションプールを開始/停止し、IISのワーカープロセスを追跡する責任があります。
次のスクリーンショットは、IDが無効であるためにアプリケーションプールが無効になっていることを示しています。
システムログに何も見つからなかった場合は、ASP.Net関連の例外がログに記録されるため、アプリケーションログを確認してください。 上で説明したように、ワーカープロセスで5分以内に5つの致命的なエラーまたは例外が発生すると、高速障害保護が開始され、障害のあるアプリケーションプールが自動的に無効になります。
イベントログに基づいて、アプリケーションプールの障害の理由がアプリケーションコードのバグであると結論付けたが、開発者が修正するまでアプリケーションプールを実行し続けたい場合は、迅速な障害保護の動作を一時的に調整できます。 、どちらかを増やすことによって 最大の失敗 または 失敗間隔 より高い値に。 次のPowerShellコマンドを使用して、この機能を無効にすることもできます。
(Get-IISAppPool awesomewebsite.com).failure.rapidFailProtection Set-WebConfigurationProperty '//*[@name="awesomewebsite.com"]//failure' -Name rapidFailProtection -Value $False
高速障害保護機能はWebサーバーの安全のためにあるため、無効にすることは問題の解決策とは見なされないことに注意してください。 代わりに、アプリケーションコードの根本的な原因(または動作を引き起こすバグ)を修正することが非常に重要です。 とにかく、開発者がバグの修正に時間がかかる場合は、無効にすることが役立つ場合があります。 その間、Webアプリケーションを稼働させ続けたいと考えています。 ラピッドフェイル保護を無効にすると、Webサーバーは障害のあるアプリケーションプールを無効にせず、訪問者にはHTTPエラー503が表示されなくなります。
HTTPエラー503の修正 ^
HTTPエラー503の簡単な解決策は、Webサイトに対応するアプリケーションプールを開始することです。 アプリケーションプールID関連のエラーまたは警告が表示された場合は、IDのユーザー名とパスワードが正しいことを確認してください。 カスタムユーザー名を使用する場合は、そのパスワードの有効期限が切れていないことを確認してください。 可能であれば、そのユーザーのパスワードが期限切れにならないように設定してください。
アプリケーションプールが繰り返し停止するが、システムログにアプリケーションプールID関連のエラーがない場合、この問題は、コード内の致命的なエラーまたは未処理の例外が原因である可能性があります。 その場合、 the アプリケーションログはあなたにいくつかの有用な洞察を与えることができます。 次のスクリーンショットは、未処理の例外が原因で発生した、アプリケーションログに記録された一般的なエラーを示しています。
このようなエラーや警告が表示された場合は、アプリケーション開発者に通知し、例外を修正するように依頼してください。 必要に応じて、イベントログに記録された詳細なエラーメッセージを共有します。
一般的な503サブステータスコード ^
次の表に、一般的なHTTP 503サブステータスコードと、考えられる原因およびトラブルシューティングのアドバイスを示します。
ステータスコード | 考えられる原因 | トラブルシューティングのアドバイス |
503.0 | アプリケーションプールは利用できません | アプリケーションプールが停止または無効になっています。 このエラーを修正するには、Webサイトに対応するアプリケーションプールを起動します。 繰り返し失敗する場合は、イベントログを確認して、失敗する理由を理解してください。 このエラーを修正する方法については、上記で説明しました。 |
503.2 | 同時リクエストの制限を超えました | The appConcurrentRequestLimit アプリケーションのキューに入れることができる最大同時要求(デフォルト値は5000)を指定するserverRuntime属性です。 503.2エラーは、この制限を超えたことを示します。 このエラーを解決するには、次のコマンドを使用して値を増やすことができます。
%SystemRoot%System32inetsrvappcmd.exe set config /section:serverRuntime /appConcurrentRequestLimit:100000 あなたが取得する場合 エラー(メッセージ:不明な属性 “appConcurrentRequestLimit”。ヘルプが表示される場合は-?に置き換えてください。) このコマンドの実行中は、代わりに次のコマンドを使用してください。 %SystemRoot%System32inetsrvappcmd.exe set config /section:system.webserver/serverRuntime /appConcurrentRequestLimit:100000 |
503.3 | ASP.NETキューがいっぱいです | The requestQueueLimit 属性は、ASP.NETプロセスがキューに入れることができる要求の最大数(デフォルト値は1000)を指定します。 このキューがいっぱいになると、503.3エラーが返されます。 このエラーを解決するには、 キューの長さ アプリケーションプールの詳細設定でより高い値に属性を付けます。 この画像を参照してください。 通常、キューの長さが超過している場合は、サーバーが要求に対応できないことを示しています。 したがって、パフォーマンスカウンターを使用して、サーバーが苦労している理由を理解できます。 |
503.4 | FastCGIキューがいっぱいです | このエラーは、FastCGIプロセスキューがいっぱいの場合に発生します。 このエラーを修正するには、の値を増やします キューの長さ FastCGIプロセスの属性。 これを行うには、IISマネージャーを開き、サーバー名をクリックして、ダブルクリックします。 FastCGI設定。 次に、アプリケーションが使用している特定のPHPバージョンのFastCGIプロセスをダブルクリックし、 キューの長さ。 この画像を参照してください。 |
4sysopsニュースレターを購読してください!
結論 ^
ほとんどのIISエラーと同様に、HTTPエラー503は、詳細なエラーと失敗した要求のトレースを使用して修正できることがわかります。。 ただし、アプリケーションプール関連のエラーが発生した場合、HTTP.sysドライバーは 503.0エラー アプリケーションプールがリクエストを処理するために利用できないためです。 したがって、詳細なエラーまたは失敗した要求トレースルールはトリガーされません。 このような状況では、Windowsのイベントログを利用してトラブルシューティングを行うことができます。
The post HTTPエラー503を修正する方法–サービスは利用できません– 4sysops appeared first on Gamingsym Japan.