2012-01-25 41 views
11

假設我有一個在IIS中託管的WCF應用程序。在該應用程序中,我運行以下代碼行:控制檯輸出在IIS託管應用程序中的位置?

Console.WriteLine("Testing, testing 1 2 3"); 

將寫入哪個位置?還是被忽略,只是失去了?

有需要的時候捕捉它嗎?

+0

如果在IIS的託管,那麼它是一樣的ASP.NET,所以這個帖子小號應該爲你回答它http://stackoverflow.com/questions/137660/where-does-console-writeline-go-in-asp-net - 我建議使用System.Diagnostics.Debug.WriteLine,而不是,你有選項到哪裏去。 –

回答

15

無處。更具體地說:

NullStream,它被定義爲「沒有後備存儲的流」。 所有的方法什麼都不做或者什麼都不返回。這是一個內部類 到Stream。以下代碼取自微軟的源代碼。

基本上,當的Console寫入方法中的一個是調用第 時間,呼叫到Windows API函數GetStdHandle製成用於 「標準輸出」。如果沒有返回句柄,NullStream創建 並使用。

從這裏引述:https://stackoverflow.com/a/2075892/12744

實際上,同樣的答案去上解決你問題的第二部分也:

要真正重定向控制檯輸出,無論項目類型使用

Console.SetOut(New System.IO.StreamWriter("C:\ConsoleOutput.txt")), 
相關問題