2008-10-16 185 views
2

我有一個.net C#控制檯應用程序(不是服務)。它基本上連接到web服務,獲取一些xml文件,將這些文件複製到驅動器上的幾個位置,驗證xml,處理它並將這些對象發送到另一個Web服務。C#控制檯應用程序退出後仍駐留在內存中

但是,當主方法存在(並且控制檯窗口關閉)時,我仍然可以在任務管理器中看到該進程。

我試着在周圍的主要方法與一切嘗試,來捕捉ApplicationException的,我還是什麼都沒有,爲什麼應用程序崩潰,即使一切順利的工作,否則......

任何人有一個線索,從哪裏開始檢查故障部件?

+0

而且您確定內存中的應用程序不是YourExe.vshost.exe? :) – OregonGhost 2008-10-16 16:55:14

+0

哈哈,這將是有趣:) – leppie 2008-10-16 16:59:03

回答

4

查看線程使用情況和異步調用。

2

如果控制檯窗口已關閉,確實進程仍在運行似乎非常奇怪。你可以在Visual Studio調試器中附加它嗎? (顯然是一個調試版本。)

你確定它不是一個以前的運行仍在執行嗎?

1

你幾乎可以肯定地在你的應用程序中有一個未終止的線程。正如喬恩所說,附加調試器,看看哪些線程是活着的。

1

由於所有其他的答案建議你可能有一個揮之不去的線程,但它不一定是一個你明確創建,您可能需要調用Dispose或者在一個或更多的物體類似

2

如果您重新調試應用程序,然後我看到Visual Studio創建一個主機exe文件的情況,這個主機exe文件最後名爲.vshost.exe,與您的應用程序類似。它使用它來控制您的應用程序以獲得更好的調試體驗。在完成程序的調試之後,這個宿主的exe文件就會保留下來,這樣它就可以等待並準備好,這樣它就可以快速啓動新的調試會話。

你確定它不是掛在這個EXE嗎?

如果您在未經調試的情況下運行應用程序,它是否仍然存在?

相關問題