【发布时间】:2011-12-13 13:10:28
【问题描述】:
我有一个 ASP.Net 应用程序,它偶尔会崩溃并导致工作进程重新加载。系统在 Windows Server 2008 R2 64 位 SP1 的 IIS 7.5 上运行。
我在应用程序事件日志中收到一个应用程序错误事件,然后是一个 Windows 错误报告事件日志。
Windows 错误报告事件日志将我指向一个目录:
C:\ProgramData\Microsoft\Windows\WER\ReportQueue\AppCrash_w3wp.exe_624e5315e1074e44338812efe102157b47f6ca8_053f0ff3
浏览网页表明我应该能够在此目录中找到内存转储,但是,我只有一个文件“Report.wer”。
我的想法是,我需要修改一些注册表设置,以便在再次发生这种情况时获得故障转储,尽管我似乎找不到需要更改的设置。
目前的注册表设置如下
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting]
"ErrorPort"="\\WindowsErrorReportingServicePort"
"MaxQueueSizePercentage"=dword:00000001
"PurgeThreshholdValueInKB"=dword:0000000a
"ServiceTimeout"=dword:0000ea60
"MachineID"="EAF7F17C-3D38-42B1-9C22-8CDD82DD7F90"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\Hangs]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\HeapControlledList]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\HeapControlledList\dwm.exe]
"EnableHeapThrottle"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\RuntimeExceptionHelperModules]
"C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\mscordacwks.dll"=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\WMR]
"Disable"=dword:00000001
谁能让我知道我可能需要更改/添加哪些设置,以便在下次工作进程崩溃时获得内存转储。
【问题讨论】:
-
不知道你是如何得到这个转储的,但你为什么不试试IIS Diagnostic Toolkit,它很容易使用,我敢打赌你可以立即找出你的 IIS 中发生的事情 =]
-
@thiagoleite 问题是我没有得到转储。如果我有内存转储,那么我可以使用调试工具包来检查它是否发生了错误。
-
你设置规则了吗?然后你的 IIS 崩溃了,在高级分析选项卡下,可用分析脚本列表上什么都没有显示?
-
@thiagoleite 我现在有设置规则。但是,当我启动这些规则时,它会导致未知错误。但是,他们仍然说 Active。尽管它们显示为 32 位,但我确实安装了 64 位版本。系统要求还说明了它适用于 Windows Server 2003,我使用的是 2008 R2。如果它崩溃了,我会看看我是否得到一个转储。虽然我好像也不能手动拿一张。
标签: asp.net iis-7.5 windows-server-2008-r2 crash-dumps memory-dump