0

将 ASP.NET 解决方案升级到 4.0 后,我们注意到每次应用程序池自动回收(每 1740 分钟),恰好 32 秒后,我们在事件日志中收到事件 ID 5009 的错误。

我在服务器上安装了调试器并在故障转储上运行了分析工具,您可以在下面看到我得到了什么。你能帮我理解可能是什么问题吗?这发生在 4 台不同的机器上(它们都是虚拟机)。我注意到在完整的调用堆栈中存在一个“循环”(出于空间原因,我在这里省略了你),以下一组调用一遍又一遍地重复:

clr!Thread::DoAppropriateWaitWorkerAlertableHelper+4d 00000000 00000000 000000001bb30ba0 00000000 20a0cf60 0000000000000000
clr!Thread::DoAppropriateWaitWorker+146 00000000 1bb30ba0 0000000000000001 00000000 01c05970 0000000000000000
clr!Thread::DoAppropriateWait+73 00000000 20a0c0a0 0000000000000001 000007fe e4736ca9 000007fee4736c2c
clr!CLREvent::WaitEx+c1 00000000 00000000 0000000000000000 00000000 00000000 000007fee7e7f960
clr! RegMeta::SaveToStream+134 00000000 20a0b740 000000001bb30ba0 00000000 dc951994 0000000076df0e4a
clr!WaitForEndOfShutdown+9 00000000 00010000 000007fee7804b65 00000000 00000000 0000000000000000
clr!Thread::RareDisablePreemptiveGC+490 00000007fe e4a8cca0 000000002000009000009dc951994 00000000
clr!EEHashTableBase,0>::FindItem+5c 000007fe e4a8cca0 0000000020a0b9f0 00000000 00000001 000007feefbc229b
clr!IsCerRootMethod+b1 00000000 00000001 0000000000000000 00000000 00000000 00000000ffffff98
clr!TAStackCrawlCallBack+1e9 00000000 20a0bd90 0000000020a0b9f0 00000000 20a0bd90 0000000020a0bd90
clr!Thread::MakeStackwalkerCallback+2f 00000000 20a0c2a0 0000000000000002 00000000 00000002 0000000020a0c060
clr!Thread:: StackWalkFramesEx+8d 00000000 1bb30ba0 000000001bb30ba0 00000000 1bb30ba0 0000000000020019
clr!Thread::ReadyForAsyncException+197 00000000 76f471ba 000000001bb30ba0 00000000 00000000 00000000 00000000clr
!Thread::HandleThreadAbort+6c 76def5e4 000007fe00000000000000000000091bb30ba0 00000000
clr!Thread::HandleThreadInterrupt+7e 00000000 000007c0 00000000000007c0 000007fe e79ae71c 000007fee4d9f9dc

分析摘要
类型描述建议错误在 w3wp_QAWEB4 _PID_4668 _Date__05_02_2012__Time_04_16_30PM_242 _Second_Chance_Exception_C0000005.dmp中的汇编指令 clr! CLREvent ::WaitEx+f in C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll尝试在线程 20 上写入内存位置 0x20990ff0 时导致访问冲突异常 (0xC0000005) 请跟进供应商 Microsoft Corporation for C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll

信息DebugDiag确定此转储文件 (w3wp_QAWEB4 _PID_4668 _Date__05_02_2012__Time_04_16_30PM_242 _Second_Chance_Exception_C0000005.dmp )是故障转储,并且没有执行任何挂起分析。如果您希望为故障转储启用组合的崩溃和挂起分析,请编辑 Globals.asp 脚本(位于 DebugDiag\Scripts\inc 文件夹中)并将 g_DoCombinedAnalysis 常量设置为 True。

分析细节

w3wp_ QAWEB4 _PID_ 4668 _Date__05_02_2012__Time_04_16_30PM_ 242 _Second_Chance_Exception_C0000005.dmp 的报告 执行的分析类型 崩溃分析 机器名称 XXXX01-QA-WEB01 操作系统 Windows Server 2008 Service Pack 2 处理器数量
进程 ID 4668 进程映像 c:\Windows\System3 .exe 系统正常运行时间 4 天 14:59:36 进程正常运行时间 00:06:32

线程 20 - 系统 ID 4364 入口点 clr!Thread::intermediateThreadProc 创建时间 2012 年 5 月 2 日下午 4:10:16 在用户模式下花费的时间 0 天 0:0:1.421 在内核模式下花费的时间 0 天 0:0: 0.453

.NET 调用堆栈

函数 System.Threading.Thread.SleepInternal(Int32) System.Threading.Thread.Sleep(System.TimeSpan) Sitecore.Services.Heartbeat.WorkLoop() *错误:模块加载已完成,但无法为 Sitecore.Kernel.dll 加载符号System.Threading.ExecutionContext.runTryCode(System.Object) System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode, CleanupCode, System.Object) System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) System.Threading.ThreadHelper.ThreadStart()

由于空间原因删除了完整的调用堆栈

异常信息 CLR!CLREVENT::WAITEX+FIn w3wp_ QAWEB4 _PID_ 4668 _Date__05_02_2012__Time_04_16_30PM_ 242 _Second_Chance_Exception_C0000005.dmp 汇编指令 clr!CLREvent::WaitEx+f in C:\Windows\Microsoft.33\Framework64\rv41.dll0 Microsoft Corporation 在尝试写入线程 20 上的内存位置 0x20990ff0 时导致访问冲突异常 (0xC0000005)

模块信息 图像名称:C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll 符号类型:PDB 基地址:0x00000003 00000000 注释:Flavor=Retail COM DLL:False 公司名称:Microsoft Corporation ISAPIExtension:False 文件说明:Microsoft .NET Runtime 公共语言运行时 - WorkStation ISAPIFilter:False 文件版本:4.0.30319.239 (RTMGDR.030319-2300) 托管 DLL:False 内部名称:clr.dll VB DLL:False 法律版权:© Microsoft Corporation。版权所有。加载的图像名称:clr.dll 合法商标:00905a4d Time Stamp: Sat Jul 09 05:44:20 2011
Checksum: 0x00000000

映射图像名称:原始文件名:clr.dll 模块名称:clr 私有构建:DDBLD205 单线程:False 产品名称:Microsoft® .NE​​T Framework 模块大小:9.39 MBytes 产品版本:4.0.30319.239 符号文件名:c:\symcache\ clr.pdb\887DDF30473443C9905C3217115D7DE72\clr.pdb 特殊版本:&

脚本摘要
脚本名称 状态 错误代码 错误源 错误说明 源行 CrashHangAnalysis.asp 已完成

4

1 回答 1

0

事件 ID 5009 描述中列出的错误代码是什么?http://www.eventid.net/display-eventid-5009-source-Microsoft-Windows-WAS-eventno-8833-phase-1.htm表示这可能是由以前的 .Net 版本中的空文件夹引起的。

于 2012-05-03T13:48:03.720 回答