0

ASP.NET アプリケーションがあります。定期的にダウンし、ユーザーを不快にさせます。

ログに次のように表示されます。

障害のあるアプリケーション名: w3wp.exe、バージョン: 7.5.7601.17514、タイム スタンプ: 0x4ce7afa2
障害が発生しているモジュール名: nlssorting.dll、バージョン: 4.0.30319.261、タイ​​ム スタンプ: 0x4ec9f3aa
例外コード: 0xc00000fd
障害オフセット: 0x0000000000002296
障害のあるプロセス ID: 0xfe4
障害のあるアプリケーションの開始時刻: 0x01cd23bb335b5514
障害のあるアプリケーション パス: c:\windows\system32\inetsrv\w3wp.exe
エラーが発生しているモジュール パス: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\nlssorting.dll
レポート ID: f25aaeba-8fae-11e1-aeea-0030488d6555

クラッシュ ダンプには次のように表示されます。

00000000`18187760 00000000`ffffffff app_code!FunBeatRace.Configuration.SiteConfiguration.get_CurrentBrand+0x5a
00000000`181877a0 00000000`ffffffff app_code!FunBeatRace.Globalization.CustomResourceProvider.CreateResourceKeyFromCultureName+0x16
00000000`181877f0 00000000`ffffffff app_code!FunBeatRace.Globalization.CustomResourceProvider.GetResourceCache+0x78
00000000`181878c0 00000000`ffffffff app_code!FunBeatRace.Globalization.CustomResourceProvider.System.Web.Compilation.IResourceProvider.GetObject+0x9b
00000000`18187900 00000000`ffffffff system_web_ni!System.Web.Compilation.ResourceExpressionBuilder.GetResourceObject+0x1f
00000000`18187940 00000000`ffffffff system_web_ni!System.Web.HttpContext.GetGlobalResourceObject+0x27

これは通常のアプリケーション作業です。しかしその後の出来事

000000001819D600 000007FF001E116B App_Code!FunBeatRace.Configuration.SiteConfiguration.get_CurrentBrand()+0x1cb
000000001819D640 000007FF001E2F06 App_Code!FunBeatRace.Globalization.CustomResourceProvider.CreateResourceKeyFromCultureName(System.String)+0x16
000000001819D690 000007FF001E29E8 App_Code!FunBeatRace.Globalization.CustomResourceProvider.GetResourceCache(System.String)+0x78

管理_スタック_コマンド: _EFN_StackTrace

LAST_CONTROL_TRANSFER: 000007fef99c3742 から 000007fef80b2296 まで

ADDITIONAL_DEBUG_TEXT: スレッド:[PSEUDO_THREAD] のフレーム:[0] からの属性 [Is_ChosenCrashFollowupThread] に基づいて設定されたフォローアップ

FAULTING_THREAD: ffffffffffffffff

BUGCHECK_STR: APPLICATION_FAULT_STACK_OVERFLOW_WRONG_SYMBOLS_CALL

PRIMARY_PROBLEM_CLASS: STACK_OVERFLOW_CALL

DEFAULT_BUCKET_ID: STACK_OVERFLOW_CALL

STACK_TEXT:  
00000000`18187530 00000000`ffffffff mscorlib_ni!DomainNeutralILStubClass.IL_STUB_PInvoke+0xbe
00000000`18187620 00000000`ffffffff mscorlib_ni!System.Globalization.CompareInfo.GetHashCodeOfString+0xa9
00000000`18187670 00000000`ffffffff mscorlib_ni!System.Collections.Hashtable.get_Item+0x5c
00000000`18187720 00000000`ffffffff system_web_ni!System.Web.SessionState.SessionStateItemCollection.get_Item+0x32

その結果、次のようになります。

SYMBOL_NAME: mscorlib_ni!DomainNeutralILStubClass.IL_STUB_PInvoke

FOLLOWUP_NAME: MachineOwner

MODULE_NAME: mscorlib_ni

IMAGE_NAME: mscorlib.ni.dll

DEBUG_FLR_IMAGE_TIMESTAMP: 4ec9f74e

STACK_COMMAND: _EFN_StackTrace ; ** 疑似コンテキスト ** ; キロバイト

FAILURE_BUCKET_ID: STACK_OVERFLOW_CALL_c00000fd_mscorlib.ni.dll!DomainNeutralILStubClass.IL_STUB_PInvoke

BUCKET_ID: X64_APPLICATION_FAULT_STACK_OVERFLOW_WRONG_SYMBOLS_CALL_mscorlib_ni!DomainNeutralILStubClass.IL_STUB_PInvoke

WATSON_STAGEONE_URL: http://watson.microsoft.com/StageOne/w3wp_exe/7_5_7601_17514/4ce7afa2/nlssorting_dll/4_0_30319_261/4ec9f3aa/c00000fd/00002296.htm?Retriage=1

フォローアップ: MachineOwner

しかし、私は何のトラブルで理解していません。

この問題を解決する方法を教えてください。

4

2 に答える 2

0

これは似ています: http://connect.microsoft.com/VisualStudio/feedback/details/665157/nlssorting-fault-crashes-iis

次のようなコードを使用して、Global.asax.cs の Application_Error() メソッドでエラーをキャッチしようとすることにも価値がある場合があります。

protected void Application_Error(Object sender, EventArgs e) {
    Exception ex = HttpContext.Current.Server.GetLastError();
    // handle it
    HttpContext.Current.Context.ClearError();
}

やがて、 How to get ELMAH to work with ASP.NET MVC [HandleError] attribute?のようなソリューションに移行することもできます。

于 2012-04-28T08:21:54.393 に答える
0

Microsoft のドキュメントによるw3wp.exeと、未処理の例外が発生するとクラッシュすることがあります。

私の経験によると、w3wp.exeスタックがオーバーフローにより絶望的に破損するとクラッシュします。この種のエラーは、メモリ破損のために try-catch ブロックで処理できません。

主な理由は、再帰呼び出しが多すぎることです。これは、各呼び出しが終了するまで、ある程度のスタックを使用するためです。無限再帰があるかもしれませんか?

2 つ目の理由は、w3wp.exe または .NET Framework のメモリ管理が不十分であるため、この状況を検出してスタック オーバーフローについてユーザーに通知する代わりに、メモリの破損が発生する可能性があります。

于 2016-05-03T13:57:09.223 に答える