w3wp.exe中发生未处理的win32exception
尝试加载ASP.NET MVC网站时出现以下exception:
w3wp.exe中0x07070a91处的未处理exception:0xC0000005:访问冲突读取位置0x00000000。
Visual Studio实时调试器打开,我在调试器中看到的唯一信息是:
调用堆栈位置:
MSVBVM60.DLL!06c00a91()
该网站使用了一些COM对象,一切正常,直到上周。 这个问题突然出现了。
这是Windows事件查看器的错误日志:
错误应用程序名称:w3wp.exe,版本:7.5.7601.17514,时间戳:0x4ce7a5f8
错误模块名称:MSVBVM60.DLL,版本:6.0.98.15,时间戳:0x4a5bda6c
exception代码:0xc0000005
故障偏移:0x00030a91
错误进程id:0x1a0
错误应用程序启动时间:0x01cd31fcb47f66d8
错误的应用程序路径:C:\ Windows \ SysWOW64 \ inetsrv \ w3wp.exe
错误模块路径:C:\ Windows \ system32 \ MSVBVM60.DLL
报告ID:f5db0ae3-9def-11e1-ad79-005056c00008
您有什么建议可以帮助解决这个问题吗?
编辑:我设法解决了问题,现在一切正常。 该解决方案涉及调整自定义dll所需的一些注册表设置,以便正常运行。 所以这个问题实际上并没有突然出现,我只是没有意识到一些注册表值被修改,导致一个com dll崩溃。
您上面提供的信息不足以提供根本原因,但是如果您可以提供有关该exception的更多信息,则可能会获得此失败的确切原因。 您询问了解决此问题的建议,因此它们是:
您可以使用3个工具中的任何一个来解决此问题:
-
IIS调试诊断工具v1.2
以下是有关如何使用此工具的更多信息: http : //support.microsoft.com/kb/919790
-
DebugDiag资料
使用下面的链接了解如何使用DebugDiag挂钩您的w3wp进程(它是用户模式进程)并收集有关崩溃的更多信息:
-
WinDBG的
这是一个链接,它将帮助您在WinDBG中加载W3WP进程并使用一些命令来提取有关崩溃的更多信息:
获得有关exception的更多信息后,您可以在上面添加并获得提示帮助。
在IIS管理器中打开为应用程序提供服务的应用程序池的“高级设置”对话框,然后设置: 启用32位应用程序为True
请执行下列操作,
1)授予Temp&%temp%文件夹的完全权限
2)转到应用程序池属性并将“启用32位应用程序”更改为true
您可以从再次发生此问题时捕获故障转储开始,
http://support.microsoft.com/kb/2580960
使用Debug Diag 1.2正确设置崩溃规则是第1步。
获得转储后,如果您熟悉转储分析,则可以使用WinDbg(Windows调试工具的一部分)进行分析。
如果您无法分析,我的建议是您通过http://support.microsoft.com打开支持案例并与Microsoft支持工程师共享转储。
在我的例子中,安装了一个名为“Web Companion”的程序。
卸载后,问题得到解决。
我的解决方案是,如果你想在64位上构建它:
Debug ==> Options ==> Search for iis ==>启用64位版本的IIS Express