Iis 7 IIS7/Win7-应用程序池突然失败
使用此配置近5个月后,我现在获得了一系列: “为应用程序池'Classic.NET AppPool'提供服务的进程遇到与Windows process Activation Service的致命通信错误。进程id为'1640'。” 这导致: 由于为应用程序池提供服务的进程中出现一系列故障,应用程序池“Classic.NET AppPool”将被自动禁用 就我的一生而言,我无法弄清楚是什么改变了导致了这一点,也无法弄清楚如何可能更深入地挖掘,找出是什么导致了它的失败 我最近(2周前)开始在我的解决方案中添加实体框架。就在发生这种情况之前,由于报告的自引用调用,我确实收到了一个“堆栈空间不足”错误。在我编写的代码中找不到类似的调用,我怀疑EF可能在我的简单(3表)模型中添加了一个连接,这是错误的 关于从哪里开始寻找有什么想法吗?什么会导致AppPool失败 短暂性脑缺血发作Iis 7 IIS7/Win7-应用程序池突然失败,iis-7,application-pool,Iis 7,Application Pool,使用此配置近5个月后,我现在获得了一系列: “为应用程序池'Classic.NET AppPool'提供服务的进程遇到与Windows process Activation Service的致命通信错误。进程id为'1640'。” 这导致: 由于为应用程序池提供服务的进程中出现一系列故障,应用程序池“Classic.NET AppPool”将被自动禁用 就我的一生而言,我无法弄清楚是什么改变了导致了这一点,也无法弄清楚如何可能更深入地挖掘,找出是什么导致了它的失败 我最近(2周前)开始在我的解决
注意: mscorlib.dll中发生类型为“System.StackOverflowException”的未处理异常 我有一个外部对象调用此方法以获取单个记录:
public static AutoNegotiationDetails GetAutoNegotiationByCompany(Guid companyId)
{
return RivWorks.Controller.Negotiation.GetAutoNegotiationByCompany(companyId);
}
该方法要求:
internal static AutoNegotiationDetails GetAutoNegotiationByCompany(Guid companyId)
{
var autoNeg = from a in _dbRiv.AutoNegotiationDetails where a.CompanyId == companyId select a;
var ret = autoNeg.FirstOrDefault();
return ret;
}
在逐步执行过程中,我可以在第一个方法内设置断点,逐步进入第二个方法,查看填充的记录,返回第一个方法,然后最终退出该方法。此时,我的IDE会锁定几秒钟,直到出现StackOverflow错误
要更准确地了解整个系统,请执行以下操作:
- 在IIS计算机上运行WebOrb30李>
- 在VS IDE中->附加到进程(INETINFO.exe)
- 登录WebOrb30->管理控制台->深入到服务入口点->在输入框中输入CompanyID->单击调用
- 在VS IDE->中点击断点(见上文)
注意:
看起来可能是EF中的另一个问题引起的。请参阅以获得进一步澄清。我可能认为您有两个应用程序/站点使用一个应用程序池,但这些应用程序/站点运行的是不同的.net版本
情况可能不是这样,但这是我在iis中遇到的唯一一个类似的反复出现的问题。由于我的实体框架中有一个bug,我得到了对我的一个关系的循环调用。这导致堆栈溢出,并作为一般错误报告给WebOrb,WebOrb将停止该操作,从而导致应用程序池崩溃。(我仍然不太了解所有的细节)。当我在没有关系的情况下重建EF模型时,行为消失了。(叹气)
EF将是另一个问题(或一系列问题)。我现在只有一个应用程序,尽管它也运行一个简单的WCF服务(已经运行了几周)。我添加到我的帖子中是为了从另一个方向了解一些情况。你能发布调用GetAutoNegotiationByCompany的方法(部分)吗?