Wie verwende ich Console.WriteLine in ASP.NET (C #) während des Debuggens?

87

Ich möchte ein Ergebnis in ASP.NET (C #) an die Konsole schreiben. Es funktioniert in einer Windows-Anwendung, aber eine Webanwendung funktioniert nicht. Folgendes habe ich versucht:

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 ..................");
}

Aber ich sehe nichts im Ausgabefenster. Wie löse ich dieses Problem?

Sprungbrötchen
quelle
Schauen Sie hier, stackoverflow.com/questions/2522099/…
labroo

Antworten:

181

Console.Write funktioniert nicht in ASP.NET, wie es über den Browser aufgerufen wird. Verwenden Sie stattdessen Response.Write.

Siehe Frage zum Stapelüberlauf. Wohin geht Console.WriteLine in ASP.NET? .

Wenn Sie während des Debuggens etwas in das Ausgabefenster schreiben möchten, können Sie verwenden

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

Dies funktioniert jedoch nur während des Debuggens.

Siehe Frage zum Stapelüberlauf Debug.WriteLine funktioniert nicht .

PraveenVenu
quelle
6
Response.Write wird in den http-Antwort-Stream schreiben, ich glaube nicht, dass @Leap Bun das will
labroo
@ Labroo Natürlich. Respone.Write zeigt dem Browser Text an. Ich kann es nicht benutzen.
Leap Bun
1
@PraveenVenu Ich habe bereits System.Diagnostics.Debug.WriteLine ("SomeText") ausprobiert. in der Frage!
Leap Bun
2
Beachten Sie, dass Sie die Ausgabe von System.Diagnostics.Debug ändern können, indem Sie die Listeners-Auflistung bearbeiten. Siehe MSDN für weitere Informationen
T. Fabre
Hilft der Kommentar, den ich zu Ihrer Frage hinzugefügt habe, nicht?
Labroo
25

using System.Diagnostics;

Das Folgende wird in Ihre Ausgabe gedruckt, solange das Dropdown-Menü wie unten gezeigt auf "Debuggen" eingestellt ist.

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


Geben Sie hier die Bildbeschreibung ein

cillierscharl
quelle
9

Wenn Sie aus irgendeinem Grund die Ausgabe von abfangen möchten Console.WriteLine, KÖNNEN Sie dies tun:

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; }
    }
}
David
quelle
2

Trace.Write ("Fehlermeldung") und Trace.Warn ("Fehlermeldung") sind die Methoden, die im Web verwendet werden müssen. Sie müssen den Seitenkopf "trace = true" und in der Konfigurationsdatei dekorieren, um den Text der Fehlermeldung auszublenden, damit er endet -user und um in iis selbst für Programmierer-Debug zu bleiben.

DeepakJoseLopez
quelle
0

Sie sollten nicht als IIS-Server starten. Überprüfen Sie Ihre Starteinstellung und stellen Sie sicher, dass sie auf Ihren Projektnamen umgestellt wurde (ändern Sie diesen Namen in Ihrer launchSettings.jsonDatei), nicht auf den IIS.

Geben Sie hier die Bildbeschreibung ein

V.Wu
quelle
-1

Stellen Sie sicher, dass Sie Ihre Anwendung im Debug-Modus ( F5) starten , nicht ohne Debugging ( Ctrl+ F5), und wählen Sie dann in Visual Studio im Ausgabefenster "Ausgabe von: Debug anzeigen" aus.

phn
quelle