应用程序在应用程序池1上崩溃,但不在应用程序池2上崩溃

时间:2014-05-06 08:12:44

标签: c# iis-6 silverlight-5.0 application-pool

我有相当广泛的Silverlight应用程序,我们的客户可以使用它。

目前,我们遇到一个问题,即应用程序池将崩溃并显示以下消息:

“为应用程序池'应用程序池1'提供服务的进程与Windows进程激活服务发生了致命的通信错误。进程ID为'6308'。数据字段包含错误号。”

当我在本地尝试相同的动作时,它的效果非常好。当我在差异应用程序池上尝试相同的操作时,它可以很好地工作。

这是我已经尝试过的一些东西:

  • 在崩溃的应用程序中将应用程序池1更改为应用程序池2。仍然会崩溃应用程序池
  • 从visual studio复制应用程序并将其放在不同的应用程序池(应用程序池2)上。完美无缺,当设置为app pool 1时,效果很好
  • 检查了所有设置(应用程序池+高级设置,网站+高级设置)。一切都是一样的
  • 启用了Process Monitor,但它没有向我展示任何有用的内容。

我不知道接下来要尝试什么来解决这个问题!

有人有任何建议吗?

PS。有时我在Windows日志中遇到以下错误>应用程序,但由于我们在服务器上运行了很多应用程序,我无法看到它是否适用于此问题

  • 错误应用程序名称:w3wp.exe,版本:7.5.7601.17514,时间戳:0x4ce7afa2
  • 错误模块名称:clr.dll,版本:4.0.30319.1,时间戳:0x4ba21eeb
  • 异常代码:0xc00000fd
  • 故障偏移:0x000000000000850a
  • 错误进程ID:0x21fc
  • 错误申请开始时间:0x01cf690216e7002c
  • 错误的应用程序路径:c:\ windows \ system32 \ inetsrv \ w3wp.exe
  • 错误模块路径:C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ clr.dll
  • 报告编号:61fc36e4-d4f5-11e3-9d58-0050569738fa

1 个答案:

答案 0 :(得分:1)

异常代码:0xc00000fd表示您的应用程序因堆栈溢出异常而失败。

这通常是由使用递归从不展开堆栈的代码引起的。

唯一真正的方法是使用ADPlus / Debug Diagnostic Tools捕获进程转储,并将其加载到WinDbg和SOS中进行分析。 Tess Ferrandez是MS的升级工程师,他有很多关于如何使用这些工具的博客:

甚至有一篇文章专门讨论如何寻找堆栈溢出的罪魁祸首: