.NET框架:w3wp.exe中的异常

32

我使用asp.net 3.5开发了一个带有web表单的网站,并在IIS上运行。之前它可以良好地工作,但是在我调试它时突然出现了异常。错误信息如下:

w3wp.exe中发生了一个未处理的Microsoft .Net Framework异常[XXXX]

每次尝试运行我的应用程序时都会出现此异常,但是当我使用Cassini运行网站时却没有异常。在IIS上部署HTML页面时也不会出现异常,只有在IIS上运行.NET应用程序时才会出现问题。

我尝试了很多在这里找到的解决方案,但都没有解决问题。

问题出在哪里?有谁能帮忙吗?谢谢。


您能否提供事件查看器中相关的条目? - Joel McBeth
嗯...不,我没有看到。 IIS日志中也没有信息。但是我在Windows日志中发现了一条消息:“HTTP / 1.1 DEBUG / website / Default.aspx-1 Connection_Abandoned_By_ReqQueue ASP.NET+v4.0”。 - greatromul
10个回答

16

当 ASP.NET 发生无限循环时,可能会出现这种情况。

ASP.NET MVC 中一个常见的示例是渲染局部视图,然后在其中进行自身的渲染。


2
这对我来说也是如此。 - radbyx
很不幸,我也是! - Sotiris Zegiannis
1
我真是太蠢了,一直在搜索和更新所有内容,完全忘记了我放置的最后一段代码。非常感谢你指出这个显而易见的问题! - Dimitris Thomas
1
虽然我还没有找到确切的代码行,但似乎我的循环代码也有一些困难。因为当我跳出有问题的函数时,这个错误就不会出现了。 - Hoda Shakourbin

10

我在事件查看器中发现了以下信息:

"描述:由于.NET Runtime内部错误,在IP 6B484BC2(6B300000)处以退出代码80131506终止进程。"

这是由.NET Framework 4.5更新引起的。我卸载了最近的更新,问题得到解决。

提示:如何查看事件查看器。 Visual Studio > 查看 > 服务器资源管理器 > SERVER_NAME > 右键点击“事件日志” > 启动事件查看器 > Windows日志 > 设置。

有关错误的信息可以在此处找到:http://support.microsoft.com/kb/2640103/en-us。但热补丁只能通过向Microsoft提出请求来获取。

我不记得“有害”的更新编号了。但我认为,每个人都可以找到最近的更新并将其卸载。


3
重要通知:MS Windows Server 2012 发现问题。 - greatromul
我在“事件查看器> Windows日志>应用程序”中找到了我的问题。代码试图在“system32\inetsrv”创建一个文件,但失败了。 - Shashank Shekhar

9
我们解决了这个问题。对我们来说,问题出在写入日志的权限级别上。我们更改了IIS中的权限。
针对每个站点,请重复以下步骤:
  1. 打开IIS管理器。
  2. 选择站点。
  3. 打开身份验证。
  4. 编辑“匿名身份验证”凭据。更改为使用应用程序池标识。
  5. 重置IIS。

同时在事件查看器中找到了另一个答案的消息,目前这个解决方案似乎已经解决了问题。找到的消息是:.NET Runtime 在 IP 00007FFAE0BE9346 (00007FFAE0BA0000) 处退出,退出代码为 80131506。 - woutervs

3
我已找到解决方案。只需按照以下步骤操作:

1)打开IIS。
2)进入你的应用程序池。
3)右键点击它 ->选择高级设置...
4)在进程模型下,将身份验证方式从“ApplicationPoolIdentity”更改为“LocalSystem”。
5)重新启动IIS。

2

我曾经遇到类似的问题,主要是由于代码进入无限循环而导致堆栈溢出异常。

在首页中注释掉了所有代码并尝试了一下,页面开始正常工作,随后逐个取消注释重要功能,发现控制器渲染进入了无限循环。找到了解决方法。


1
我的问题是,我的应用程序需要加载的一个DLL不再在bin文件夹中。通过查看“事件查看器> Windows日志> 应用程序”,我找到了问题所在以及导致问题的缺失的dll。

0

我遇到了这个问题,因为我的应用程序的IIS应用程序池设置为.NET 4.5(经典)。我将其切换为非经典模式,重新启动了IIS,问题就消失了。


0

我正在从 Parallel.ForEach 调用异步任务方法。在开发中我没有问题,但在生产中出现了这个错误。我想 SO 的资源不足。

我可以在 Windows 的事件查看器日志中看到错误日志,它显示了堆栈跟踪信息。


这并没有回答问题。一旦您拥有足够的声望,您将能够评论任何帖子;相反,提供不需要询问者澄清的答案。- 来自审核 - Bracken

0

我遇到了这个错误,因为服务器使用的.dll文件与我的客户端应用程序使用的.dll文件版本不同。

简而言之:确保您的应用程序和网站使用相同的dll文件。


0

如果是win32异常 打开应用程序池的高级设置对话框并 设置:启用32位应用程序为True


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