IIS应用程序池崩溃,出现异常0xc0000005。

7

使用第三方编写的.net提供程序时,我的应用程序池持续崩溃。我不确定从何处开始解决问题。

我使用事件查看器获取了以下信息:

故障应用程序名称:w3wp.exe,版本:7.5.7601.17514,时间戳:0x4ce7a5f8
故障模块名称:ntdll.dll,版本:6.1.7601.17514,时间戳:0x4ce7b96e
异常代码:0xc0000005
故障偏移量:0x00052d94
故障进程id:0x162c
故障应用程序启动时间:0x01cd8ad4f6ad757b
故障应用程序路径:c:\windows\system32\inetsrv\w3wp.exe
故障模块路径:C:\windows\SYSTEM32\ntdll.dll
报告ID:36661c3b-f6c8-11e1-830c-180373c0a6cd  
  <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
  <Provider Name="Application Error" /> 
  <EventID Qualifiers="0">1000</EventID> 
  <Level>2</Level> 
  <Task>100</Task> 
  <Keywords>0x80000000000000</Keywords> 
  <TimeCreated SystemTime="2012-09-04T19:39:17.000000000Z" /> 
  <EventRecordID>26328</EventRecordID> 
  <Channel>Application</Channel> 
  <Computer>my computer</Computer> 
  <Security /> 
  </System>
  <EventData>
  <Data>w3wp.exe</Data> 
  <Data>7.5.7601.17514</Data> 
  <Data>4ce7a5f8</Data> 
  <Data>ntdll.dll</Data> 
  <Data>6.1.7601.17514</Data> 
  <Data>4ce7b96e</Data> 
  <Data>c0000005</Data> 
  <Data>00052d94</Data> 
  <Data>162c</Data> 
  <Data>01cd8ad4f6ad757b</Data> 
  <Data>c:\windows\system32\inetsrv\w3wp.exe</Data> 
  <Data>C:\windows\SYSTEM32\ntdll.dll</Data> 
  <Data>36661c3b-f6c8-11e1-830c-180373c0a6cd</Data> 
  </EventData>
  </Event>

“0xc0000005” 可能是内存访问冲突。也许你需要联系第三方。 你在那里使用的是什么类型的提供者? - TGlatzer
它在IIS Express中运行良好,但一旦部署到IIS上就会崩溃。Unify是公司的名称。SQLBase。 - Walter Fresh
你尝试过将它部署到本地 IIS(在与 IIS Express 相同的计算机上)吗? 如果没有 - 你应该试试,如果它在那里崩溃了 - 联系公司。如果它没有崩溃 - 检查目标服务器上的先决条件。 - TGlatzer
4个回答

6
请检查运行工作进程w3wp.exe的帐户是否具有您托管文件夹(例如Inetpub)的读/写权限。

我认为这可能是问题所在。提供程序装载了其他被使用的程序集。附加程序集的路径在一个ini文件中指定。也许其他程序集存在权限问题?这对我来说都是新的,所以我不是最擅长解决问题的人。 - Walter Fresh
那是我的问题。在虚拟机中,当请求页面时,“DefautlAppPool”会无缘无故地停止。更改了应用程序池标识,现在它可以正常工作了。也许有人在这个虚拟机上弄乱了“Network Service”帐户权限(之前使用的帐户)。 - Leniel Maccaferri

1
我曾经遇到过同样的问题。 在我的代码中,有以下一行vb.net代码:
Dim mPath as string = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)

我的整个ASP.NET崩溃了,因为它无法在运行时访问这个文件夹。 错误处理不起作用。 Clr 简单地崩溃了。

将此行替换为现有目录解决了我的问题。


1

我曾经遇到同样的问题,花了两天时间才找到解决方案。即使这个帖子已经三年了,我还是发表我的答案。也许可以帮助其他人节省很多时间。

我不得不在web.config中禁用缓存功能。我使用了"caching"和"staticContent"标签。必须将两者都删除。


0

我之前也遇到了同样的问题,但是通过手动删除我的MVC项目的bin和obj文件夹来解决了它。


我不能清空我的bin文件夹,因为那里存放着所有后端的.dll文件。 - Harvey Lin
@HarveyLin 任何重要的东西都不应该放在你的bin文件夹或任何其他“build”文件夹中。那些是构建过程的产物。如果你依赖这些文件存在,它们需要被构建过程中的某个脚本移动到那里。 - Novaterata
安装了调试工具后,我找到了问题所在。这是一个 SQL 查询中表格名称的拼写错误,与 IIS 或权限无关。 - Harvey Lin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接