Как перехватить вывод IIS Express при запуске из Visual Studio 2010 SP1? - PullRequest
4 голосов
/ 15 марта 2011

Если вы запускаете IIS Express из командной строки, все, что вы пишете Console.Out в вашем веб-приложении, отображается в выходных данных командной строки.Это очень удобно для устранения проблем с переводом LINQ to SQL, если вы установили DataContext.Log = Console.Out.Однако если вы отметите «Использовать IIS Express» в свойствах веб-проекта в VS 2010 SP1, вы никогда не увидите командную строку.

Можно ли перенаправить IIS Express Console.Out в файл журнала или что-то еще?

Ответы [ 2 ]

1 голос
/ 17 марта 2011

Я нашел способ написать прямо в окно консоли отладки через блог damieng:

class DebugTextWriter : System.IO.TextWriter {
   public override void Write(char[] buffer, int index, int count) {
       System.Diagnostics.Debug.Write(new String(buffer, index, count));
   }

   public override void Write(string value) {
       System.Diagnostics.Debug.Write(value);
   }

   public override Encoding Encoding {
       get { return System.Text.Encoding.Default; }
   }
}

Вы можете прикрепить его к DataContext, как если бы вы использовали Console.Out:

#if DEBUG
   db.Log = new DebugTextWriter();
#endif

http://damieng.com/blog/2008/07/30/linq-to-sql-log-to-debug-window-file-memory-or-multiple-writers

0 голосов
/ 15 марта 2011

Вы можете увидеть вывод консоли, если вы настроили «опцию исполнения файла изображения» для iisexpress.exe.Единственная проблема, вы увидите всплывающее окно консоли при запуске нового iisexpress.exe.Вы можете настроить это только тогда, когда вы хотите увидеть следы консоли.

Выполните следующие действия для настройки параметров запуска файла образа:

  1. установите windbg из http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx

  2. Установите следующий раздел реестра (эта ссылка можетпомочь вам http://msdn.microsoft.com/en-us/library/a329t4ed(VS.71).aspx)

[HKEY_LOCAL_MACHINE \ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ Windows NT \ CurrentVersion \ Параметры выполнения файла образа \ iisexpress.exe]

"Отладчик" = "c: \\windbg -g -G "

Вы можете отключить выполнение файла образа, переименовав или удалив указанный выше раздел реестра.

...