Come utilizzare Console.WriteLine in ASP.NET (C #) durante il debug?


88

Voglio scrivere qualche risultato sulla console in ASP.NET (C #). Funziona in un'applicazione Windows, ma un'applicazione Web non funziona. Ecco cosa ho provato:

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

Ma non vedo nulla nel pannello Output. Come risolvo questo problema?


Risposte:


184

Console.Write non funzionerà in ASP.NET poiché viene chiamato utilizzando il browser. Usa invece Response.Write.

Vedere la domanda sull'overflow dello stack Dove va Console.WriteLine in ASP.NET? .

Se vuoi scrivere qualcosa nella finestra di output durante il debug, puoi usare

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

ma questo funzionerà solo durante il debug.

Vedi Domanda di overflow dello stack Debug.WriteLine non funziona .


6
Response.Write scriverà nel flusso di risposta http, non credo che @Leap Bun lo voglia
labroo

@labroo Ovviamente. Respone.Write mostrerà il testo al browser. Non posso usarlo.
Leap Bun

1
@PraveenVenu Ho già provato System.Diagnostics.Debug.WriteLine ("SomeText"); nella domanda!
Leap Bun

2
Si noti che è possibile modificare l'output di System.Diagnostics.Debug manipolando la raccolta Listeners. Vedi MSDN per maggiori informazioni
T. Fabre

Il commento che ho aggiunto alla tua domanda non aiuta?
labroo

27

using System.Diagnostics;

Quanto segue verrà stampato sull'output purché il menu a discesa sia impostato su "Debug" come mostrato di seguito.

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


inserisci qui la descrizione dell'immagine


9

Se per qualsiasi motivo desideri catturare l'output di Console.WriteLine, PUOI farlo:

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; }
    }
}

2

Trace.Write ("Error Message") e Trace.Warn ("Error Message") sono i metodi da utilizzare nel web, servono per decorare l'intestazione della pagina trace = true e nel file di configurazione per nascondere il testo del messaggio di errore per andare alla fine -user e in modo da rimanere in iis stesso per il debug del programmatore.



0

Non dovresti avviare come un server IIS. controlla le impostazioni di avvio, assicurati che sia passato al nome del tuo progetto (cambia questo nome nel tuo launchSettings.jsonfile), non a IIS.

inserisci qui la descrizione dell'immagine


-1

Assicurati di avviare l'applicazione in modalità Debug ( F5), non senza debug ( Ctrl+ F5) e quindi seleziona "Mostra output da: Debug" nel pannello Output in Visual Studio.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.