2011-12-14 9 views
4

このエラーは私をあまりにも殺しています。私はApplication_OnErrorでこのエラーをキャプチャすることができません。私が得ることができる唯一のメッセージは、イベントビューアのログです。アプリケーションは、stackoverflowのためにクラッシュする

Application: w3wp.exe 
Framework Version: v4.0.30319 
Description: The process was terminated due to stack overflow. 



Faulting application w3wp.exe, version 7.0.6001.18000, time stamp 0x47919413, faulting module nlssorting.dll, version 4.0.30319.235, time stamp 0x4da3fc88, exception code 0xc00000fd, fault offset 0x000020d4, process id 0x%9, application start time 0x%10. 

私は非常に大きなアプリケーションを持っていますが、上記のエラーで私はどこでスタックオーバーフローの正確な原因が判断できません。これを修正する手助けはできますか?

+0

アプリケーションでこのエラーが発生するのはどこですか? – BizApps

+0

なぜこのエラーをApplication_OnErrorでキャプチャできないとお考えですか? –

+0

私はApplication_OnErrorにエラーを記録していますが、何もHttpContext.Current.Server.GetLastError()に入っていません。 –

答えて

2

あなたはApplication_Endでさらに役立つかもしれません。ここから、次のような方法でシャットダウンスタックをキャプチャすることができます。

HttpRuntime runtime = (HttpRuntime)typeof(System.Web.HttpRuntime).InvokeMember("_theRuntime", BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.GetField, null, null, null); 

(string)runtime.GetType().InvokeMember("_shutDownStack", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.GetField, null, runtime, null); 

(string)runtime.GetType().InvokeMember("_shutDownMessage", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.GetField, null, runtime, null);