2011-02-07 70 views
6

早在十月份,我們將其中一個站點(在IIS 6上)從.net 3.5升級到.net 4.0。從那時起,我們一直在日常生活幾乎得到以下警告和錯誤:自升級到dot net以來的IIS錯誤4

警告:

ISAPI 'c:\windows\microsoft.net\framework\v4.0.30319\aspnet_isapi.dll' reported itself as unhealthy for the following reason: 'Deadlock detected'.

錯誤:

It is not possible to run two different versions of ASP.NET in the same IIS process. Please use the IIS Administration Tool to reconfigure your server to run the application in a separate process.

我們已經檢查了所有的應用程序,並確保它們在運行正確版本的ASP.NET以及他們自己的獨立應用程序池。

我們已經看了IIS日誌的記錄在錯誤的時間,但並不給出任何線索的問題。是否有可用的工具可以爲我們提供更多的信息,以瞭解哪些應用程序導致錯誤以及當時發生了什麼?

回答

1

討論here可能是有益的你還有:

You can configure the application pool to orphan the worker process rather than kill it when this condition happens - you can then use adplus to collect a hang dump of the worker process which can be analyzed to figure out what in the process is deadlocked.

(...)

It means that the asp.net thrads have not returned from whatever activity they were doing for a very long time and asp.net has run out of threads - this would normally indicate deadlock. This kb also talks about how to generate dumps for analysis for this condition.

0

我有完全相同的錯誤,這是由於.NET 2.0我的.NET 4.0應用程序所指的自定義錯誤頁面。

我已經建立了一個被開發.NET 2.0中自定義錯誤頁,它是在IIS網站的頂級應用。

的.NET 4.0應用程序是使用一種獨特的MVC的URL路由方案,出於某種原因,只是不停地應用鎖定了最終的死鎖錯誤會來。

我擺脫它指出,.NET 2.0的網頁和切換回默認的自定義錯誤頁設置「未找到」靜差。我重新啓動了應用程序池,網頁開始正常工作。

希望這可以幫助別人。

http://adamantinewolverine.blogspot.kr/2012/10/running-iis6-in-32-bit-mode-on-64bit.html