2009-02-09 138 views
1

尋找在用戶在終端服務下運行時捕獲內存轉儲的方法的建議。我曾嘗試在WinDbg中使用「AdPlus」,但該應用程序在終端服務下運行,似乎並不喜歡這種組合。捕獲內存轉儲 - .NET

這是一個VB.NET應用程序。

我的問題類似於Tool for analyzing .NET app memory dumps,但需要允許應用程序在沒有外部對話的終端服務下運行。我以安靜模式嘗試WinDbg,但它會使會話崩潰。

+0

是應用程序崩潰,掛起或在當時正常狀態所需的內存轉儲? – 2013-11-05 14:55:12

+0

可能的[如何爲.NET創建崩潰轉儲?]的副本(http://stackoverflow.com/questions/24874027/how-do-i-take-a-good-crash-dump-for-net ) – 2017-03-21 18:37:30

回答

2

adplus應該在終端服務下正常工作 - 我們經常這樣使用它。你究竟如何嘗試使用它。

終端服務會話需要注意的一點是會話本身有空閒超時。我們經常通過終端服務部門將客戶的adplus服務加入我們的服務中,然後想知道爲什麼服務在一小時後死亡。解決方案是強制終端服務連接使用控制檯會話(命令行上的/ console用於mstsc)。

0

由於adplus從命令行運行,如果您註銷或終端服務會話超時,腳本將停止。

要考慮的一種可能性是使用DebugDiag,它作爲「本地系統」服務運行,因此它不依賴於登錄的交互式用戶會話。

您可以配置該服務以定期安排內存轉儲,並稍後在DebugDiag的其他組件中查看/分析結果,所有組件均可通過腳本進行自定義。

有用的鏈接和下載:

http://blogs.msdn.com/sukeshak/pages/ddintro.aspx

http://blogs.msdn.com/tess/archive/2009/01/23/net-hang-analyzing-debug-diag-output.aspx

http://www.microsoft.com/downloadS/details.aspx?FamilyID=28bd5941-c458-46f1-b24d-f60151d875a3&displaylang=en