私のクライアントには、2つの運用サーバーにインストールされたASP.NETアプリケーションがあります(NLBとバランスが取れていますが、それは無関係です)。両方のサーバーが3〜4時間ごとにクラッシュし、次のイベントビューアーがエラーを記録しました。
障害のあるアプリケーション名:w3wp.exe、バージョン:7.5.7601.17514、タイムスタンプ:0x4ce7afa2
障害モジュール名:clr.dll、バージョン:4.0.30319.18034、タイムスタンプ:0x50b5a783
例外コード:0xc00000fd障害オフセット:0x000000000001a840
プロセスIDのエラー:0xd50
アプリケーションの開始時間のエラー:0x01ce97fe076d27b4
アプリケーションパスのエラー:c:\ windows\system32\inetsrv\w3wp.exe
モジュールパスの障害:C:\ Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dllレポートID:e0c90a5f-0455-11e3-8f0e-005056891553
デバッグ方法やどこから始めればいいのかわかりません。クラッシュが発生しそうになると、サーバープロセッサの使用率は100%にジャンプし、そのままになります。障害のあるプロセスはw3wp.exeです。私のコードがエラーを生成しているかどうかさえわかりません。 IIS 7.5。どんなポインタでも大歓迎です。
StackOverflow Exceptionが発生しているようです。これは、無制限の再帰(関数自体の繰り返し呼び出しなど)が原因です。これは、通常のtry/catchブロックでは捕捉できません。 DebugDiagおよびWinDbgを使用して問題を追跡できます。
DebugDiagは、StackOverflowExceptionが発生したときにクラッシュダンプを生成するように構成できます。 https://www.Microsoft.com/en-us/download/details.aspx?id=49924 からダウンロードします。
次回StackOverflowExceptionが発生すると、クラッシュダンプが発生します。ダンプファイルを解釈する必要があります。
Windows用のデバッグツールはWindows SDKの一部であり、 http://msdn.Microsoft.com/en-US/windows/hardware/gg463009/ からダウンロードできます。
SRV*your local folder for symbols*http://msdl.Microsoft.com/download/symbols
、しかし、私はシンボルのローカルフォルダーに入れただけで、うまくいきました。.loadby sos clr
と入力します!CLRStack
と入力します結果では、問題が明確になっているはずです(繰り返し呼び出されていた関数を示す行のBUNCHが表示される可能性があります)。
上記の回答への追加。ユーザーのログイン時にエラーが発生したエクスプローラー拡張機能を開発します。そのため、ユーザーにとっては「画面のフラッシュ」に見えます(Explorerは起動とクラッシュを試みてから、再起動するなど)。 DebugDiagとWinDbgをインストールした別のユーザーアカウントでログインしました。今日(2014年1月13日)にすべての最新の更新を含む.NET 4.0でWindows 8.1を使用していますが、ローカルでいくつかのシンボルをダウンロードしようとしましたが、署名が正しくないためWinDbgはclr.pdbをロードできません。
オンラインでシンボルを使用して解決しました-「SRV * http://msdl.Microsoft.com/download/symbols 」をシンボルパスとして使用します。
別の原因は「無限再帰的に機能する」可能性があります。 infitine loopが発生すると、Windowsはデッドロックを回避し、関連するアプリケーションプールを無効にします。
今日も同じ問題に遭遇しました。 parentproject-subプロジェクトをリストする再帰関数があります。 1つのプロジェクト自体が親プロジェクトに設定されており、問題のある機能がすべての親サブプロジェクトをリストしようとすると、無限ループが発生します。
イベントビューア-> Windowsログ->システムを確認して見つけることができました
アプリケーションプール 'DankAppPool'は、そのアプリケーションプールにサービスを提供するプロセスでの一連の障害のために自動的に無効にされています。
その下:
アプリケーションプール 'DankAppPool'を提供するプロセスは、Windowsプロセスアクティブ化サービスとの致命的な通信エラーを経験しました。プロセスIDは「5704」でした。データフィールドにはエラー番号が含まれています。
そして:
QueueMonitorサービスは予期せず終了しました。これは32回行われました。次の修正アクションが60000ミリ秒で実行されます。サービスを再起動します。
少なくともQueueMonitorサービスは開始する場所です。