IIS7:为应用程序池"YYYYY"提供服务的进程与Windows进程激活服务发生致命的通信错误

Enr*_*ror 40 asp.net iis-7 windows-server-2008 http-status-code-503

我们正在运行一个32位Windows服务器2008,其IIS版本为7.
我们正在尝试发布一个asp.net 4.0 webapp,到目前为止,我们的尝试只在serverlog中产生了一些警告,甚至没有停止4.0应用程序池

为应用程序池"ASP.NET v4.0"提供服务的进程与Windows进程激活服务发生致命的通信错误.进程ID是'1904'.数据字段包含错误编号.

该应用程序在4.0 app-pool和默认网站下运行.
我们还有一些较旧的.asp运行完美无缺.
即使在尝试发布一个贫瘠的(只读一行文本).aspx文件时,它也失败了......我们已经很久没有想过要做什么,所以任何形式的输入都会受到赞赏......

Pet*_*erg 14

确保IIS中的每个应用程序池Advanced SettingsEnable 32 bit Applications设置为True

IIS截图

  • 能否解释为什么这会解决OP的问题?我问,因为我在64位Windows Server 2008 R2上遇到了同样的问题,并想知道这个解决方案是否可以推广到我的案例.谢谢! (11认同)
  • 这是一个红鲱鱼,不是问题的解决方案.问题是导致应用程序失败的原因. (11认同)
  • 对我来说,Windows日志显示该进程的虚拟内存存在问题,无法增加.我认为设置"启用32位应用程序"会将进程大小限制为2GB,并在达到限制时强制执行池循环.您还可以在应用程序池的高级参数中设置虚拟内存限制. (2认同)

Gro*_*ozz 9

我在一天中的大部分时间都在调试问题,当我接近燃烧建筑时,我发现了SysinternalsProcess Monitor工具.

将其设置为w3wp.exe在浏览器中触发请求后退出之前监视并检查上次事件.希望有助于进一步的读者.

  • 我错过了nuget包(在我的案例中是System.Net.Primitives) (2认同)
  • 在我的例子中,问题是我的应用程序代码中的无限递归循环. (2认同)

mhe*_*384 5

调试诊断工具(DebugDiag)可以节省生命。它创建并分析IIS故障转储。看到调用堆栈后,我在几分钟内就发现崩溃。 https://support.microsoft.com/zh-CN/kb/919789

  • 有关更多信息,请参阅 TechNet 博客文章,介绍如何配置 DebugDiag 工具以捕获故障转储:https://blogs.msdn.microsoft.com/parvez/2016/08/06/iis-application-pool-crash-和-调试-诊断/ (3认同)