C# w3wp.exe 中发生未处理的 win32 异常
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/10589029/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
an unhandled win32 exception occurred in w3wp.exe
提问by david.s
I get the following exception when trying to load an ASP.NET MVC website:
尝试加载 ASP.NET MVC 网站时出现以下异常:
Unhandled exception at 0x07070a91 in w3wp.exe: 0xC0000005: Access violation reading location 0x00000000.
w3wp.exe 中 0x07070a91 处的未处理异常:0xC0000005:访问冲突读取位置 0x00000000。
The Visual Studio Just-In-Time Debugger opens and the only information I can see in the debugger is this:
Visual Studio 即时调试器打开,我在调试器中看到的唯一信息是:
Call stack location:
msvbvm60.dll!06c00a91()
调用栈位置:
msvbvm60.dll!06c00a91()
The website uses some COM objects and everything worked fine until last week. This problem appeared out of the blue.
该网站使用了一些 COM 对象,直到上周一切正常。这个问题突然出现。
This is the error log from Windows Event Viewer:
这是来自 Windows 事件查看器的错误日志:
Faulting application name: w3wp.exe, version: 7.5.7601.17514, time stamp: 0x4ce7a5f8
Faulting module name: MSVBVM60.DLL, version: 6.0.98.15, time stamp: 0x4a5bda6c
Exception code: 0xc0000005
Fault offset: 0x00030a91
Faulting process id: 0x1a0
Faulting application start time: 0x01cd31fcb47f66d8
Faulting application path: C:\Windows\SysWOW64\inetsrv\w3wp.exe
Faulting module path: C:\Windows\system32\MSVBVM60.DLL
Report Id: f5db0ae3-9def-11e1-ad79-005056c00008
错误的应用程序名:w3wp.exe,版本:7.5.7601.17514,时间戳:0x4ce7a5f8
错误模块名称:MSVBVM60.DLL,版本:6.0.98.15,时间戳:0x4a5bda6c
异常代码:0000005
故障偏移:0x00030a91
出错进程ID:量0x1A0
断裂作用应用程序启动时间:0x01cd31fcb47f66d8
错误的应用程序路径:C:\Windows\SysWOW64\inetsrv\w3wp.exe
错误的模块路径:C:\Windows\system32\MSVBVM60.DLL
报告 ID:f5db0ae3-9def-11e1-ad79-0005086
Do you have any suggestions to help troubleshoot this problem?
您有什么建议可以帮助解决此问题吗?
Edit:I managed to solve the problem and now everything works. The solution involved tweaking some registry settings that the custom dlls need in order to function properly. So the problem didn't actually appear out of the blue, I just didn't realize some registry values were modified, which caused a com dll to crash.
编辑:我设法解决了问题,现在一切正常。该解决方案涉及调整自定义 dll 正常运行所需的一些注册表设置。所以这个问题实际上并不是突然出现的,我只是没有意识到一些注册表值被修改了,这导致了一个 com dll 崩溃。
采纳答案by AvkashChauhan
The information you provided above is not enough to provide a root cause however if you can provide more info about the exception you might get exact reason for this failure. You asked for suggestion to troubleshoot this problem so here they are:
您上面提供的信息不足以提供根本原因,但是如果您可以提供有关异常的更多信息,您可能会得到此失败的确切原因。您询问了解决此问题的建议,因此它们是:
You can use either any one of the 3 tools to troubleshoot this issue:
您可以使用以下 3 种工具中的任何一种来解决此问题:
IIS Debug Diagnostics Tool v1.2
Here is more info about how to use this tool: http://support.microsoft.com/kb/919790
DebugDiag
Use the link below to understand how you can hook your w3wp process (it is user mode proces) with DebugDiag and collect more info about the crash:
WinDBG
Here is a link which will help you to load W3WP process in WinDBG and use some commands to extract more info about the crash:
IIS调试诊断工具 v1.2
以下是有关如何使用此工具的更多信息:http: //support.microsoft.com/kb/919790
调试诊断
使用下面的链接了解如何使用 DebugDiag 挂钩 w3wp 进程(它是用户模式进程)并收集有关崩溃的更多信息:
数据库
这是一个链接,它将帮助您在 WinDBG 中加载 W3WP 进程并使用一些命令来提取有关崩溃的更多信息:
Once you have more info about the exception, you can add above and will get prompt help.
一旦您获得有关异常的更多信息,您可以在上面添加并获得即时帮助。
回答by Lex Li
You may start by capturing a crash dump when this issue happens again,
当此问题再次发生时,您可以先捕获故障转储,
http://support.microsoft.com/kb/2580960
http://support.microsoft.com/kb/2580960
Use Debug Diag 1.2 to set up a crash rule properly is step 1.
使用 Debug Diag 1.2 正确设置崩溃规则是第 1 步。
Once you have the dump, you can use WinDbg (part of Debugging Tools for Windows) to analyze it if you are familiar with dump analysis.
获得转储后,如果您熟悉转储分析,则可以使用 WinDbg(Windows 调试工具的一部分)对其进行分析。
If you are not capable of analyzing that, my suggestion is that you open a support case via http://support.microsoft.comand share the dumps with Microsoft support engineers.
如果您无法对此进行分析,我的建议是您通过http://support.microsoft.com打开一个支持案例并与 Microsoft 支持工程师共享转储。
回答by BSPL Aneesh
Do the Following,
请执行下列操作,
1) Give full rights to Temp & %temp% folders
1) 授予对 Temp 和 %temp% 文件夹的完全权限
2) Go to application pool properties & Change " Enable 32 bit application " to true
2)转到应用程序池属性并将“启用32位应用程序”更改为true
回答by undefined
Open the Advanced settings dialog of the Application pool that is serving the application in IIS Manager, and set: Enable 32-Bit Applicationsto True
在 IIS 管理器中打开为应用程序提供服务的应用程序池的高级设置对话框,并设置:启用 32 位应用程序为True
回答by Bhupen
In my case, a program called "Web Companion" was installed.
就我而言,安装了一个名为“Web Companion”的程序。
After uninstalling it, the problem was fixed.
卸载后问题就解决了。
回答by Cobi
My Solution is if you want to build it on 64bit:
我的解决方案是,如果您想在 64 位上构建它:
Debug ==> Options ==> Search for iis ==> enable using of 64bit Version of IIS Express
调试 ==> 选项 ==> 搜索 iis ==> 启用 64 位版本的 IIS Express

