Azure の .NET 4.0 で実行されている非常に大規模で複雑な MVC3 プロジェクトがあります。
私たちが経験している症状は、サイトが応答しなくなり、クラッシュすることです。管理ポータルに移動すると、すべてのインスタンスが「停止」状態になっています。
私が理解していることから、これは IIS ラピッド フェイル プロテクションが起動してアプリケーション プールを強制終了し、再起動しないという動作です。
デバッグ診断ツールを使用して、クラウド サービスの IIS のインスタンスのメモリ ダンプをキャプチャしました。クラッシュするたびに、最後のメッセージは次のようになります。
[4/2/2014 1:41:52 AM] First chance exception - 0X000006B5 caused by thread with System
ID: 2856. DetailID = 3
Script Error
Error Code - 0x800A01CE
Error Source [Microsoft VBScript runtime error]
Error Description [The remote server machine does not exist or is unavailable: 'ServiceState']
Line 104, Column 2
または
[4/2/2014 12:25:52 AM] First chance exception - 0XE06D7363 caused by thread with System ID: 3292Script Error
Error Code - 0x80070013
Error Source [Unavailable]
Error Description [Unavailable]
Line 1103, Column 4
また、これらの例外の数は、アプリケーション プールで定義されている最大障害数と同じではないにしても、非常に似ています。
私が試したこと:
- Azure Emulator と VM で実行してもクラッシュしない
- Azure SDK 2.2 へのアップグレードと OS ファミリ 4 へのデプロイ (現在実行中の SDK 2.0、OS ファミリ: 3)
- CustomErrors をオフにする
- Application_Error() ですべてのエラーをキャッチする
私には、キャッチされず、IIS ワーカー プロセスをクラッシュさせているいくつかの例外があるように見えます。5 (アプリ プールの最大失敗数) に達すると、クラッシュするだけです。
誰かがこれに光を当てたり、私が試すことができる何か他のことを提案したりできれば、私は最も感謝しています.