繁体   English   中英

从Visual Studio 2010 SP1运行时如何捕获IIS Express输出?

[英]How to capture IIS Express output when run from Visual Studio 2010 SP1?

如果从命令行运行IIS Express,则在Web应用程序中编写Console.Out的任何内容都将显示在命令行输出中。 如果设置DataContext.Log = Console.Out这对于解决LINQ to SQL转换问题非常方便。 但是,如果在VS 2010 SP1中的Web项目属性中选中“使用IIS Express”,则永远不会看到命令行。

你可以重定向IIS Express Console.Out到日志文件或什么?

我找到了一种通过damieng的博客直接写入Debug Console窗口的方法:

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; }
   }
}

您可以像使用Console.Out一样将它附加到DataContext:

#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

如果为iisexpress.exe设置“图像文件执行选项”,则可以看到控制台输出。 唯一的问题是,当启动新的iisexpress.exe时,您将看到一个弹出控制台窗口。 只有在想要查看控制台跟踪时才能设置此选项。

请按照以下步骤设置图像文件执行选项:

  1. http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx安装windbg

  2. 设置以下注册表项(此链接可能会帮助您http://msdn.microsoft.com/en-us/library/a329t4ed(VS.71).aspx

[HKEY_LOCAL_MACHINE \\ SOFTWARE \\ Microsoft \\ Windows NT \\ CurrentVersion \\ Image File Execution Options \\ iisexpress.exe]

“Debugger”=“c:\\\\ windbg -g -G”

您可以通过重命名或删除上述注册表项来禁用图像文件执行选项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM