问题 控制台输出在IIS托管应用程序中的位置?


假设我在IIS中托管了一个WCF应用程序。在那个应用程序中,我运行这行代码:

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

那会被写到哪里?或者它被忽略而且丢失了?

有需要时可以捕获它吗?


4777
2018-01-25 20:25


起源

如果它在IIS中托管,那么它与ASP.NET相同,所以这篇文章应该为你解答 stackoverflow.com/questions/137660/...   - 我建议使用System.Diagnostics.Debug.WriteLine,你可以选择去哪里。 - Matt Roberts


答案:


无处。进一步来说:

NullStream,定义为“没有后备存储的流”。   所有方法都不做任何事情或什么都不返回这是一个内部阶级   至 Stream。以下代码取自Microsoft的源代码。

基本上,当其中之一 Console 写方法是第一个调用   时间,调用Windows API函数 GetStdHandle 对于   “标准输出”。如果没有返回句柄a NullStream 被建造   和使用。

引自这里: https://stackoverflow.com/a/2075892/12744

实际上,同样的答案也是为了解决你问题的第二部分:

要实际重定向控制台输出,无论项目类型如何,请使用

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

15
2018-01-25 20:33