Куда выводится консоль в размещенном в IIS приложении? - PullRequest
12 голосов
/ 26 января 2012

Скажем, у меня есть приложение WCF, размещенное в IIS.И в этом приложении я запускаю следующую строку кода:

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

Куда это будет записано?Или это игнорируется и просто теряется?

Есть ли способ захватить его при необходимости?

1 Ответ

16 голосов
/ 26 января 2012

Nowhere.Более конкретно:

NullStream, который определяется как «Поток без резервного хранилища».Все методы ничего не делают или ничего не возвращают.Это внутренний класс до Stream.Следующий код взят из исходного кода Microsoft.

В основном, когда один из Console методов записи вызывается в первый раз, вызывается функция Windows API GetStdHandle для «стандартного вывода»,Если дескриптор не возвращается, то создается и используется NullStream.

, цитируемое здесь: https://stackoverflow.com/a/2075892/12744

фактически, тот же ответ переходит к второй частиВаш вопрос тоже:

Чтобы фактически перенаправить вывод консоли, независимо от типа проекта, используйте

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