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

Vac*_*ano 12 iis console wcf console-application

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

 Console.WriteLine("Testing, testing 1 2 3");
Run Code Online (Sandbox Code Playgroud)

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

有需要时可以捕获它吗?

Col*_*ard 17

无处.进一步来说:

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

基本上,当Console第一次调用其中一个write方法时,会调用Windows API函数GetStdHandle进行"标准输出".如果没有返回句柄,则NullStream创建并使用它.

引用自:https://stackoverflow.com/a/2075892/12744

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

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

  Console.SetOut(New System.IO.StreamWriter("C:\ConsoleOutput.txt")),
Run Code Online (Sandbox Code Playgroud)

  • 这个答案的第二部分是一个宝石 - 它回答“如何在 IIS Web 应用程序中查看控制台输出”。注意:我发现我必须添加“Console.Out.Flush();” 每次 Console.WrriteLine... 调用之后,一旦进行 WriteLine 调用,输出就会显示在文件中。 (2认同)
  • 只是缺少那部分:“writer.AutoFlush = True” (2认同)