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?


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 .


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


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

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.



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


-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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.