Visual Studio 2010 SP1から実行されたときにIISエクスプレス出力をキャプチャする方法は?
-
24-10-2019 - |
質問
コマンドラインからIIS Expressを実行すると、Console.OutをWebアプリに記述するものはすべて、コマンドライン出力に表示されます。これは、LinqからSQL翻訳の問題を撮影するのに苦労するのに非常に便利です。 DataContext.Log = Console.Out
. 。ただし、VS 2010 SP1のWebプロジェクトプロパティで「IIS Expressを使用」を確認すると、コマンドラインが表示されません。
IIS Express Console.outをログファイルなどにリダイレクトできますか?
解決
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; }
}
}
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が開始されると、ポップアップコンソールウィンドウが表示されることです。コンソールトレースを表示したい場合にのみ、これをセットアップできます。
画像ファイルの実行オプションをセットアップするには次のことを行います。
windbgからインストールします http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx
次のレジストリキーをセットアップします(このリンクはあなたに役立つかもしれません 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
「デバッガー」= "c: windbg -g -g"
上記のレジストリキーを変更または削除することにより、画像ファイルの実行オプションを無効にできます。