【问题标题】:an unhandled win32 exception occurred in w3wp.exew3wp.exe 中出现未处理的 win32 异常
【发布时间】:2012-05-22 06:34:16
【问题描述】:

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

w3wp.exe 中 0x07070a91 处未处理的异常:0xC0000005:访问 违规读取位置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 崩溃。

【问题讨论】:

  • 您调用的是这些自定义 COM 对象吗?
  • MSVBVM60 是 VB6 运行时 dll。我的猜测是完全信任更改为部分信任,情况

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


【解决方案1】:

在我的例子中,发生这种情况是因为代码上有一个无限循环

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    在我的例子中,安装了一个名为“Web Companion”的程序。

    卸载后问题解决了。

    【讨论】:

      【解决方案4】:

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

      【讨论】:

      • 在 Microsoft 论坛中搜索了一个多小时但毫无结果并使用 IIS 调试诊断工具后,这就是为我解决的问题。这么奇怪的问题。
      • 这也解决了我这边的问题。此外,我发现将该设置设置为 True 然后立即将其再次设置为 false 也可以解决问题,但是在一段时间内……我必须每天执行一次……这有点烦人。 @IsaacLyman 您遇到此问题多长时间了?对我来说,它从上周五开始,以前从未有过。我怀疑 Windows 更新有问题...
      • @Marc-AndreR。一个有缺陷的 Windows 更新是绝对可能的。几天前我才开始体验它。我点击了“设置应用程序池默认值”,将设置更改为 True(永久更改了所有或我的应用程序池),此后我没有遇到任何问题。
      • 嘿,这解决了我的问题。非常感谢。你能解释一下这个技巧是如何工作的,以及抛出这个错误的原因是什么。
      • 嗨@Ajith,当您在发布模式下发布您的应用程序时,它默认为x86 架构构建,默认情况下64 位窗口中的IIS 以64 位启动工作进程。我还没有通过 AnyCPU 构建测试过。
      【解决方案5】:

      执行以下操作,

      1) 授予 Temp 和 %temp% 文件夹的完全权限

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

      【讨论】:

      • 我认为 %temp% 文件夹的完全访问权限做到了。谢谢。
      【解决方案6】:

      您在上面提供的信息不足以提供根本原因,但是如果您可以提供有关异常的更多信息,您可能会得到此失败的确切原因。您要求提供解决此问题的建议,因此它们是:

      您可以使用 3 种工具中的任何一种来解决此问题:

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

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

      2. 调试诊断

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

        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

      一旦您获得有关异常的更多信息,您可以在上面添加并获得及时帮助。

      【讨论】:

        【解决方案7】:

        当此问题再次发生时,您可以先捕获故障转储,

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

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-03-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多