6

IISにasp.netWebアプリケーションを展開した後、Console.WriteLineコマンドの出力が表示される可能性はありますか?(これ以上Visual Studioはありません)

私はこの質問をチェックしました:

Console.WriteLineはASP.NETのどこにありますか?

しかし、問題は、それらすべてが、VisualStudioの出力ウィンドウを使用してそれらの行の出力をチェックできるデバッグ/開発環境について話していることです。

追加のロギングツール(log4netなど)をインストールせずに、これらの行の出力を表示する方法は本当にありますか?

4

6 に答える 6

13

Console.WriteLine(デフォルトではConsole.Out.WrlteLineにリダイレクトされます)はStream.Nullに書き込まれます。つまり、あなたが言及した質問に従って、それらに書き込まれたものは失われます。

Console.Outをファイルなどの別のストリームにリダイレクトするには、global.asaxファイルのBeginRequestハンドラーなどでConsole.SetOutを使用します。これにより、Console.WriteLine呼び出しが出力ファイルにリダイレクトされます。EndRequestハンドラーまたは同様の場所でストリームを閉じることを忘れないでください。

他の人がここで言っているように、Console.WriteLineは、この理由から、Webアプリケーションや汎用ライブラリでは一般的に避ける必要があります。log4netなどのロギングライブラリの使用を検討してください。

于 2012-09-22T14:26:21.927 に答える
3

Console.Outデフォルトでは、ホストプロセスのstdoutストリームに対応します。Windowsでは、コンソールタイプとしてマークされた実行可能ファイルのみが、stdoutストリームをコンソールウィンドウに送信します。他のすべての実行可能ファイルタイプ(GUIおよびサービスプロセス)の場合、stdoutはどこにも行きません。

ASP.NETw3wp.exeは、GUIのない​​サービスプロセス内で実行されます。@aktonが指摘しているように、それはnullストリームになるため、書き込まれたものはすべて失われます。

デバッグ(つまり、事後デバッグ)の操作をトレースする場合は、Debug.WriteLineのようなログライブラリを使用または使用しますlog4net

于 2012-09-22T14:28:40.133 に答える
1

私はあなたができるとは思わない。責任ある開発者は、デバッグを支援するために自分のコードから情報を書くことができますが、常にTrace.WriteまたはDebug.Write、決してConsole.Write

于 2012-09-22T14:17:21.207 に答える
1

受け入れられた答えは正しいです。しかし、靴でコーヒーテーブルに釘を打ち込みたい場合(間違った目標と間違ったツール)、リモートデスクトップからサーバーにログインして起動することにより、iisを停止し、コンソールからインタラクティブに実行する必要があります。 cmd.exeプロンプトからの適切なスイッチを備えたinetinfo.exe。これは、IISの古いバージョンの手法を説明するMSDNページです。http://msdn.microsoft.com/en-us/library/aa291261(v = vs.71).aspx原則として、新しいバージョンでも機能すると思います IISのバージョン。

ライブラリを使用したくない場合は、いつでもSystem.Diagnostics TraceSourceを使用して、トレースを開発中のConsoleTraceListenersにリダイレクトし(コンソールを接続することを忘れないでください)、サーバー環境のファイルまたはデータベースリスナーにリダイレクトできます。

于 2012-09-22T20:11:28.860 に答える
1

Console.WriteLine()そこからDebugViewを使用して、IISで実行されているC#/ .Netコンパイル済みアプリケーションの出力を取得できます: https ://technet.microsoft.com/en-us/sysinternals/bb896647

于 2016-01-08T15:36:55.643 に答える
0

MessageBoxを使用すると、非常に役立ちます。
観察したいものは何でもメッセージボックスに入れます

于 2012-09-22T14:22:26.200 に答える