2012-03-08 8 views
62

ASP.NET(C#)のコンソールに結果を書きたいと思っています。 これはWindowアプリケーションでは機能しますが、Webアプリケーションは機能しません。 デバッグ中にASP.NET(C#)でConsole.WriteLineを使用するには?

protected void btonClick_Click(object sender, EventArgs e) 
{ 
    Console.WriteLine("You click me ..................."); 
    System.Diagnostics.Debug.WriteLine("You click me .................."); 
    System.Diagnostics.Trace.WriteLine("You click me .................."); 
} 
をしかし、私は出力パネルに何も表示されません:ここに は、私がしようとしているものです。この問題をどうやって解決するのですか?

+0

は、ここで見て http://stackoverflow.com/questions/2522099/where-does-debug-write-output-to – labroo

答えて

137

ブラウザでConsole.Writeが呼び出されるため、ASP.NETではConsole.Writeは機能しません。代わりにResponse.Writeを使用してください。

スタックオーバーフローの質問Where does Console.WriteLine go in ASP.NET?を参照してください。

デバッグ時に出力ウィンドウに何かを書きたい場合は、

System.Diagnostics.Debug.WriteLine("SomeText"); 

を使用することができますが、これはデバッグ時にのみ機能します。

スタックオーバーフローの質問Debug.WriteLine not workingを参照してください。

+5

Response.WriteをHTTP応答ストリームに書き込みます、私は@Leapバンが望んでいると思ういけませんその – labroo

+0

私は私の答えを更新しました – PraveenVenu

+0

@labrooもちろん。 Respone.Writeはブラウザにテキストを表示します。私はそれを使用することはできません。 –

22

using System.Diagnostics;

以下は限り以下に示すようにドロップダウンが「デバッグ」に設定されているとして、あなたの出力に出力します。

Debug.WriteLine("Hello, world!");


enter image description here

+12

これは以前から試してみましたが、うまくいきません! –

7

あなたがConsole.WriteLineの出力をキャッチしたい何らかの理由場合は、あなたがこれを行うことができます:

protected void Application_Start(object sender, EventArgs e) 
{ 
    var writer = new LogWriter(); 
    Console.SetOut(writer); 
} 

public class LogWriter : TextWriter 
{ 
    public override void WriteLine(string value) 
    { 
     //do whatever with value 
    } 

    public override Encoding Encoding 
    { 
     get { return Encoding.Default; } 
    } 
} 
1

のTrace.Write( "エラーメッセージ ")とTrace.Warn("エラーメッセージ ")はWebで使用するメソッドであり、ページヘッダを飾る必要があります。プログラマーのデバッグのためにiis自体にとどまるためにエンドユーザに行くためのメッセージメッセージを作成する。

2

code-behindにresponse.writeメソッドを使用します。

関連する問題