4

如果您从命令行运行 IIS Express,则您在 Web 应用程序中编写的任何内容 Console.Out 都会显示在命令行输出中。如果您将DataContext.Log = Console.Out. 但是,如果您在 VS 2010 SP1 的 Web 项目属性中选中“使用 IIS Express”,您将永远看不到命令​​行。

您可以将 IIS Express Console.Out 重定向到日志文件或其他内容吗?

4

2 回答 2

1

我通过 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

于 2011-03-17T13:56:54.293 回答
0

如果您为 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 文件执行选项\iisexpress.exe]

"调试器"="c:\\windbg -g -G"

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

于 2011-03-15T20:13:25.567 回答