2014-02-07 33 views
1

我們的應用程序池回收了我們的WCF服務後,拋出FileLoadException。回收應用程序池有所幫助。有時錯誤消失而沒有回收。我問了這個問題 我在這裏問了第一個問題:FileLoadException when accessing WCF service如何在應用程序池回收後獲取特定異常的內存轉儲

由於我們沒有其他的想法如何分析這個問題,我們想獲得內存轉儲與它的異常。

但我不知道如何配置adplus或debugdiag自動附加到該新進程(回收後)並生成特定異常的崩潰轉儲。這甚至有可能嗎?

+0

獨立於創建轉儲的方式,不要忘記從系統中複製所有SOS.dll和mscordacwks.dll,以便能夠分析轉儲。 –

回答

2

您可以使用Procdump做出的第一次機會異常的完全內存轉儲:

procdump -ma -e 1 -f FileLoadException w3wp.exe 

但不幸的是,你可能需要手動連接它,因爲我不知道任何外的開箱解。我們有時使用PowerShell腳本完成這些任務。

2

,使用WinDbg,重視它,並通過菜單添加事件過濾器「調試>事件過濾器...」 點擊「添加...」和錯誤代碼應根據MSDN page0x80131621但它可能是不同的,其可能是個問題,然後輸入gc。 否則,我希望當發生異常WinDbg的斷裂,那麼你可以做一個轉儲:

.dump /ma c:\dumps\mycrash.dmp 

你可能已經看過關於如何調試這個問題,以下頁面: http://blogs.msdn.com/b/suzcook/archive/2003/05/29/57120.aspxhttp://bradwilson.typepad.com/blog/2007/12/we-were-crashin.htmlrelated SO post

+0

但附加到什麼?我需要獲取在應用程序池回收後創建的新進程的轉儲。 –

+0

附加到主機服務,你需要啓用調試子進程使用'.childdbg 1'有一個相關的[SO帖子](http://stackoverflow.com/questions/5340336/windbg-automatically-continue-when- child-process-created-and-childdbg-1-enabl) – EdChum

+0

@Peri我還沒有嘗試使用.net,但不知道這是否會100%工作[2005年後](http://blogs.msdn.com /b/jmstall/archive/2005/08/16/debug-child-process.aspx)表示這不可能,但2014年可能會有所不同 – EdChum

相關問題