简体   繁体   English

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

[英]Application crashes on app pool 1, but doesn't on app pool 2

I have rather extensive silverlight application with which our customers work. 我有与客户合作的相当广泛的Silverlight应用程序。

Currently we have an issue where the application pool will crash with the following message: 当前,我们遇到一个问题,应用程序池将崩溃,并显示以下消息:

"A process serving application pool 'app pool 1' suffered a fatal communication error with the Windows Process Activation Service. The process id was '6308'. The data field contains the error number." “为应用程序池'应用程序池1'提供服务的进程与Windows进程激活服务发生致命通信错误。进程ID为'6308'。数据字段包含错误号。”

When I try the same action on local, it works perfectly. 当我在本地尝试相同的操作时,它会完美运行。 When I try the same action on a difference application pool, it works perfectly. 当我在不同的应用程序池上尝试相同的操作时,它可以完美运行。

Here's a bunch of stuff i've tried already: 这是我已经尝试过的一堆东西:

  • Change app pool 1 to app pool 2 in crashing application. 在崩溃的应用程序中将应用程序池1更改为应用程序池2。 Still crashes the app pool 仍然会使应用程序池崩溃
  • Duplicated the application from visual studio and put it on a different app pool (app pool 2). 复制Visual Studio中的应用程序,并将其放在另一个应用程序池(应用程序池2)中。 Works perfectly, when set to app pool 1, works perfectly 设置为应用程序池1时,效果很好
  • checked all settings (app pool + advanced settings, website + advanced settings). 检查了所有设置(应用程序池+高级设置,网站+高级设置)。 Everything is the same 一切都一样
  • Turned on Process Monitor, but it didn't show me anything usefull. 打开了进程监视器,但没有显示任何有用的信息。

I have no idea what to try next to fix this problem! 我不知道下一步该怎么解决!

Anyone have any suggestions? 有人有什么建议吗?

ps. PS。 sometimes I get the following error in Windows Logs > Application, but since we are running a lot of applications on the server I can't see if it applies to this problem or not 有时,我会在Windows日志>应用程序中收到以下错误,但是由于我们在服务器上运行了很多应用程序,所以我看不到它是否适用于此问题

  • Faulting application name: w3wp.exe, version: 7.5.7601.17514, time stamp: 0x4ce7afa2 错误的应用程序名称:w3wp.exe,版本:7.5.7601.17514,时间戳:0x4ce7afa2
  • Faulting module name: clr.dll, version: 4.0.30319.1, time stamp: 0x4ba21eeb 错误的模块名称:clr.dll,版本:4.0.30319.1,时间戳:0x4ba21eeb
  • Exception code: 0xc00000fd 异常代码:0xc00000fd
  • Fault offset: 0x000000000000850a 故障偏移量:0x000000000000850a
  • Faulting process id: 0x21fc 故障进程ID:0x21fc
  • Faulting application start time: 0x01cf690216e7002c 错误的应用开始时间:0x01cf690216e7002c
  • Faulting application path: c:\\windows\\system32\\inetsrv\\w3wp.exe 错误的应用程序路径:c:\\ windows \\ system32 \\ inetsrv \\ w3wp.exe
  • Faulting module path: C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\clr.dll 错误的模块路径:C:\\ Windows \\ Microsoft.NET \\ Framework64 \\ v4.0.30319 \\ clr.dll
  • Report Id: 61fc36e4-d4f5-11e3-9d58-0050569738fa 报告ID:61fc36e4-d4f5-11e3-9d58-0050569738fa

Exception code: 0xc00000fd indicates that your application is failing with a stack overflow exception. 异常代码: 0xc00000fd指示您的应用程序因堆栈溢出异常而失败。

This is most commonly caused by code that uses recursion never unwinding the stack. 这最常见的原因是使用递归的代码从未解开堆栈。

The only real way to find out is to capture a process dump with ADPlus/Debug Diagnostic Tools and load it up into WinDbg and SOS for analysis. 找出问题的唯一真正方法是使用ADPlus / Debug诊断工具捕获进程转储,并将其加载到WinDbg和SOS中进行分析。 Tess Ferrandez, who was an escalation engineer for MS, has a great series of blogs on how to use these tools: 曾是MS的升级工程师的Tess Ferrandez拥有一系列有关如何使用这些工具的博客:

There's even an article specifically about how to look for a stack overflow culprit: 甚至有一篇专门关于如何查找堆栈溢出元凶的文章:

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM