2009年6月29日 星期一

伺服應用程式集區 'DefaultAppPool' 的處理序已意外中止了。處理序識別碼為 '6060'。處理序結束碼為 '0x800703e9'。

客戶那裡一直出現這樣的問題。asp.net 1.1 版的程式升級到 2.0 後,速度出奇的慢。

在事件檢視器上,找到了下面的問題。

  1. 伺服應用程式集區 'DefaultAppPool' 的處理序已意外中止了。處理序識別碼為 '6060'。處理序結束碼為 '0x800703e9'。
  2. 事件類型:    警告
    事件來源:    W3SVC
    事件類別目錄:    無
    事件識別碼:    1011
    日期:        2009/6/29
    時間:        上午 10:03:02
    使用者:        N/A
    電腦:    ComputerName
    描述:
    伺服應用程式集區 'DefaultAppPool' 的處理序與 World Wide Web Publishing 服務通訊時發生嚴重錯誤。處理序識別碼為 '3800'。資料欄位含有錯誤號碼。

    請在 http://go.microsoft.com/fwlink/events.asp 查看說明及支援中心,以取得其他資訊。
    資料:
    0000: 6d 00 07 80               m..€   

 

救命啊!即使我在 asp.net 上已在 global.asax 上,在Application_Error上已做好了寫 exception log 的準備,無奈完全看不到任何的 log ,因為在 IIS 上就掛了,來不及讓 asp.net 來寫出log。

怎麼辦呢?解決過程如下。

  1. 在 C:\WINDOWS\system32\LogFiles\HTTPERR 下找到錯誤訊息。
    2009-06-29 08:15:32 172.16.1.87 56735 172.16.1.64 80 HTTP/1.1 POST /myApp/csharpwrapper/Company.WEB.SystemName.FunctionNAme.ClassName,MyApp.ashx?_method=ServerSideGetProductDummy&_session=rw - 1 Connection_Abandoned_By_AppPool DefaultAppPool
  2. 以'0x800703e9' 在 Bing 上追問題,第二個是微軟 msdn上的說明。微軟的問題,當然找微軟的文件。一看,是 stackOverFlow 的 exception.
  3. 再以 Vistual Studio 2008 在 Windows 2003 上 debug,會發現程式碼一如往常,只是跑完ajax 後,就進入的無限迴圈了。

之前同事在 asp.net 1.1 上為了達到 ajax 的效果,使用了一個 open source 的 ajax library,沒想到升級到 2.0後,會造成如此驚人的效果

解法呢?當然是把元兇換掉,讓正牌的 asp.net ajax 上場囉!

沒有留言:

Share with Facebook