w3wp.exe中发生未处理的win32异常

时间:2012-05-14 18:32:06

标签: c# asp.net asp.net-mvc iis-7.5 com-interop

尝试加载ASP.NET MVC网站时出现以下异常:

  

w3wp.exe中0x07070a91处的未处理异常:0xC0000005:Access   违规读取位置0x00000000。

Visual Studio实时调试器打开,我在调试器中看到的唯一信息是:

  

调用堆栈位置:

     

MSVBVM60.DLL!06c00a91()

该网站使用了一些COM对象,一切正常,直到上周。这个问题突然出现了。

这是Windows事件查看器的错误日志:

  

错误应用程序名称:w3wp.exe,版本:7.5.7601.17514,时间戳:0x4ce7a5f8
  错误模块名称:MSVBVM60.DLL,版本:6.0.98.15,时间戳:0x4a5bda6c
  例外代码: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崩溃。

6 个答案:

答案 0 :(得分:12)

在IIS管理器中打开为应用程序提供服务的应用程序池的“高级设置”对话框,并将启用32位应用程序设置为 True

答案 1 :(得分:11)

您在上面提供的信息不足以提供根本原因,但是如果您可以提供有关该例外的更多信息,则可能会获得此失败的确切原因。您询问了解决此问题的建议,因此它们是:

您可以使用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

  4. 获得有关异常的更多信息后,您可以在上面添加并获得提示帮助。

答案 2 :(得分:3)

执行以下操作,

1)赋予Temp& amp; %temp%文件夹

2)转到应用程序池属性&将“启用32位应用程序”更改为true

答案 3 :(得分:2)

您可以从再次发生此问题时捕获故障转储开始,

http://support.microsoft.com/kb/2580960

使用Debug Diag 1.2正确设置崩溃规则是第1步。

如果您熟悉转储分析,则可以使用WinDbg(Windows调试工具的一部分)进行分析。

如果您无法对此进行分析,我的建议是您通过http://support.microsoft.com打开支持案例并与Microsoft支持工程师共享转储。

答案 4 :(得分:1)

在我的案例中,一个名为" Web Companion"已安装。

卸载后,问题得到解决。

答案 5 :(得分:1)

我的解决方案是,如果您想在64位上构建它:

调试==>选项==>搜索iis ==>启用64位版本的IIS Express