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个工具中的任何一个来解决此问题:

  1. IIS调试诊断工具v1.2

    以下是有关如何使用此工具的更多信息: http : //support.microsoft.com/kb/919790

  2. DebugDiag资料

    使用下面的链接了解如何使用DebugDiag挂钩您的w3wp进程(它是用户模式进程)并收集有关崩溃的更多信息:

    http://msdn.microsoft.com/en-us/library/ff420662.aspx

  3. WinDBG的

    这是一个链接,它将帮助您在WinDBG中加载W3WP进程并使用一些命令来提取有关崩溃的更多信息:

    http://blog.whitesites.com/Debugging-Faulting-Application-w3wp-exe-Crashes__634424707278896484_blog.htm

获得有关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