2010-01-14 53 views
1

失敗後,近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

+0

你可以發佈調用GetAutoNegotiationByCompany的方法(部分)嗎? – gingerbreadboy 2010-01-14 21:27:04

回答

0

由於我的實體框架中存在一個錯誤,我正在對我的一個關係進行循環調用。這導致了一個堆棧溢出,它被報告給WebOrb作爲一般錯誤,並且WebOrb將停止導致App Pool崩潰。 (我還是不太明白所有的細節)。當我沒有關係重建我的EF模型時,行爲就消失了。 (嘆息/)

EF將是另一個問題(或一系列問題)。

0

我可能是有兩個應用程序/網站使用一個應用程序池,但應用程序/網站運行的是不同的.net版本。

這可能不是這種情況,但它是我唯一遇到過的與iis類似的問題。

+0

我現在只有一個應用程序,雖然它也運行一個簡單的WCF服務(並且已經持續了幾個星期)。我添加到我的帖子,以便可以向另一個方向傾斜。 – 2010-01-14 20:45:43