失敗後,近5個月,這個配置現在我得到了一系列的:IIS7/Win7的 - 應用程序池突然
「進程服務應用程序池「經典.net應用程序池遇到致命的通信錯誤與Windows進程激活服務。進程ID是'1640'。「
這導致:
應用程序池「經典.net應用程序池」被自動禁用由於服務於該應用程序池的過程(ES)一系列的失敗。
我不能爲我的生活,找出是什麼改變了,開始造成這個我也不能弄清楚如何可能在更深的挖掘,找出什麼導致它失敗。
我最近(2周前)開始將Entity Frameworks添加到我的解決方案中。在此之前,由於報告的自引用調用,我確實收到了「堆棧空間不足」錯誤。我在我寫的代碼中找不到任何類似的調用,並且懷疑EF可能在我的簡單(3表)模型中添加了一個錯誤的連接。
關於從哪裏開始尋找的任何想法?什麼會導致AppPool失敗?
TIA
注意:
類型 'System.StackOverflowException' 未處理的異常出現在mscorlib.dll
我有一個調用外部對象此方法獲得單個記錄:
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另一個問題引起的。有關進一步說明,請參見C# - Entity Framework - An unhandled exception of type 'System.StackOverflowException' occurred in mscorlib.dll。
你可以發佈調用GetAutoNegotiationByCompany的方法(部分)嗎? – gingerbreadboy 2010-01-14 21:27:04