Comment utiliser Console.WriteLine dans ASP.NET (C #) pendant le débogage?

88

Je veux écrire un résultat sur la console dans ASP.NET (C #). Cela fonctionne dans une application Windows, mais une application Web ne fonctionne pas. Voici ce que j'ai essayé:

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

Mais je ne vois rien dans le panneau de sortie. Comment résoudre ce problème?

Leap Bun
la source

Réponses:

184

Console.Write ne fonctionnera pas dans ASP.NET car il est appelé à l'aide du navigateur. Utilisez plutôt Response.Write.

Voir la question sur le débordement de pile. Où Console.WriteLine va-t-il dans ASP.NET? .

Si vous souhaitez écrire quelque chose dans la fenêtre de sortie pendant le débogage, vous pouvez utiliser

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

mais cela ne fonctionnera que pendant le débogage.

Voir la question Débogage de pile Debug.WriteLine ne fonctionne pas .

PraveenVenu
la source
6
Response.Write écrira dans le flux de réponse http, je ne pense pas que @Leap Bun le veut
labroo
@labroo Bien sûr. Respone.Write affichera le texte dans le navigateur. Je ne peux pas m'en servir.
Leap Bun
1
@PraveenVenu J'ai déjà essayé System.Diagnostics.Debug.WriteLine ("SomeText"); dans la question!
Leap Bun
2
Notez que vous pouvez modifier la sortie de System.Diagnostics.Debug en manipulant la collection Listeners. Voir MSDN pour plus d'informations
T.Fabre
Le commentaire que j'ai ajouté à votre question n'aide-t-il pas?
labroo
27

using System.Diagnostics;

Ce qui suit sera imprimé sur votre sortie tant que la liste déroulante est définie sur «Déboguer» comme indiqué ci-dessous.

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


entrez la description de l'image ici

Cillierscharl
la source
9

Si pour une raison quelconque vous souhaitez capturer la sortie de Console.WriteLine, vous POUVEZ faire ceci:

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
la source
2

Trace.Write ("Message d'erreur") et Trace.Warn ("Message d'erreur") sont les méthodes à utiliser sur le Web, il faut décorer l'en-tête de la page trace = true et dans le fichier de configuration pour masquer le texte du message d'erreur pour aller à la fin -user et pour rester en lui-même pour le débogage du programmeur.

DeepakJoseLopez
la source
0

Vous ne devriez pas lancer en tant que serveur IIS. vérifiez votre paramètre de lancement, assurez-vous qu'il a basculé sur le nom de votre projet (changez ce nom dans votre launchSettings.jsonfichier), pas sur IIS.

entrez la description de l'image ici

V.Wu
la source
-1

Assurez-vous de démarrer votre application en mode Débogage ( F5), non sans débogage ( Ctrl+ F5), puis sélectionnez «Afficher la sortie de: Débogage» dans le panneau Sortie de Visual Studio.

phn
la source