2016-05-04 70 views
1

我們有一個在Azure標準中型應用程序服務計劃中運行的ASP.NET MVC網站。Azure Web應用程序工作進程意外地回收

有時候,工作人員的流程會在沒有任何警告的情況下回收。

我將代碼添加到Application_Endglobal.asax.cs以記錄HostingEnvironment.ShutdownReason

記錄的原因是HostingEnvironment,據我瞭解這意味着託管環境啓動關機。

沒有應用程序錯誤或事件記錄。 「應用程序設置」中的「始終打開」設置爲「開」。

如何確定關機的根本原因?

+0

**僅供參考**如果進程不存在,** Application_End將不會觸發。換言之,如果應用程序崩潰,它不會觸發。 – Win

回答

0

描述here增加更詳細的關機原因的日誌記錄後, 我發現下面的詳細記錄:

"Shutdown message: Change Notification for critical directories. 
File Change Notification Error in App_LocalResources 
HostingEnvironment initiated shutdown 
Change Notification for critical directories. 
File Change Notification Error in App_LocalResources 
Change Notification for critical directories. 
File Change Notification Error in App_LocalResources 
Change Notification for critical directories. 
File Change Notification Error in App_LocalResources 
Change Notification for critical directories. 
File Change Notification Error in App_LocalResources 
Change Notification for critical directories. 
File Change Notification Error in App_LocalResources 
Change Notification for critical directories. 
File Change Notification Error in App_LocalResources 
Change Notification for critical directories. 
File Change Notification Error in App_LocalResources 
CONFIG change 
CONFIG change 

這使我相信,有一些短暫的問題,在Azure中發生導致ASP.NET變更通知失敗,從而觸發應用程序重新啓動。在this question中描述了類似的問題。

作爲解決方法,我已將fcnMode = "disabled"添加到web.config中的httpRuntime元素。根本原因仍然未知。鏈接問題中被接受的答案表明該案例中的原因是北歐數據中心的SMB錯誤。還有其他的原因,因爲我在3年後的美國東部數據中心遇到了這個問題。

1

我對Azure不太熟悉,所以這可能不相關,但默認情況下,IIS每29小時回收應用程序池,除非您另行指定。

一些更多信息here

+1

根據http://stackoverflow.com/questions/25545677/meaning-of-always-on-setting-on-azure-web-site上的接受答案Always On禁用定期回收。這與我在Azure中有超過29個小時的其他應用程序池癱瘓有關。 –

0

任何機會,您在您的網絡日誌中發現任何500.121錯誤?我在w3wp進程中遇到了一個死鎖問題,導致了一段時間內零I/O。事實證明,天青在任何有零I/O的進程中大約持續4分鐘。

日誌中的條目將跳出您的身份。通常列出的大多數W3C屬性都是空的(包括客戶端IP!)

最終成爲代碼錯誤。

相關問題