Jak używać Console.WriteLine w ASP.NET (C #) podczas debugowania?

88

Chcę napisać jakiś wynik do konsoli w ASP.NET (C #). Działa w aplikacji Windows, ale aplikacja internetowa nie działa. Oto, czego próbowałem:

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

Ale nic nie widzę w panelu Wyjście. Jak rozwiązać ten problem?

Leap Bun
źródło

Odpowiedzi:

184

Console.Write nie będzie działać w ASP.NET, jak jest nazywana za pomocą przeglądarki. Zamiast tego użyj Response.Write.

Zobacz pytanie dotyczące przepełnienia stosu. Gdzie Console.WriteLine idzie w ASP.NET? .

Jeśli chcesz napisać coś do okna wyjściowego podczas debugowania, możesz użyć

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

ale to zadziała tylko podczas debugowania.

Zobacz pytanie o przepełnienie stosu Debug.WriteLine nie działa .

PraveenVenu
źródło
6
Response.Write zapisze do strumienia odpowiedzi http, nie sądzę, że @Leap Bun tego chce
labroo
@labroo Oczywiście. Respone.Write wyświetli tekst w przeglądarce. Nie mogę tego użyć.
Leap Bun
1
@PraveenVenu Próbowałem już System.Diagnostics.Debug.WriteLine ("SomeText"); w pytaniu!
Leap Bun
2
Zauważ, że możesz zmienić dane wyjściowe System.Diagnostics.Debug, manipulując kolekcją Listeners. Aby uzyskać więcej informacji, zobacz MSDN
T. Fabre
Czy komentarz, który dodałem do twojego pytania, nie pomaga?
labroo
27

using System.Diagnostics;

Poniższe wydruki zostaną wydrukowane na twoim wyjściu, o ile lista rozwijana jest ustawiona na „Debuguj”, jak pokazano poniżej.

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


wprowadź opis obrazu tutaj

cillierscharl
źródło
9

Jeśli z jakiegoś powodu chcesz złapać dane wyjściowe Console.WriteLine, MOŻESZ to zrobić:

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
źródło
2

Trace.Write ("Komunikat o błędzie") i Trace.Warn ("Komunikat o błędzie") to metody do użycia w sieci, należy udekorować nagłówek strony trace = true oraz w pliku konfiguracyjnym, aby ukryć tekst komunikatu o błędzie, aby przejść do końca -user i aby pozostać w samym sobie do debugowania programisty.

DeepakJoseLopez
źródło
0

Nie powinieneś uruchamiać jako serwer IIS. sprawdź ustawienie uruchamiania, upewnij się, że przełączyło się na nazwę projektu (zmień tę nazwę w launchSettings.jsonpliku), a nie na IIS.

wprowadź opis obrazu tutaj

V.Wu
źródło
-1

Upewnij się, że uruchamiasz aplikację w trybie debugowania ( F5), nie bez debugowania ( Ctrl+ F5), a następnie wybierz opcję „Pokaż dane wyjściowe z: Debugowanie” w panelu Wyjście w programie Visual Studio.

phn
źródło