Hata ayıklama sırasında ASP.NET (C #) 'de Console.WriteLine nasıl kullanılır?


89

ASP.NET'te (C #) konsola bir sonuç yazmak istiyorum. Bir Pencere uygulamasında çalışır, ancak bir Web uygulaması çalışmaz. İşte denediğim şey:

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

Ancak Çıktı panelinde hiçbir şey görmüyorum. Bu sorunu nasıl çözerim?


Yanıtlar:


186

Console.Write, tarayıcı kullanılarak çağrıldığı için ASP.NET'te çalışmaz. Bunun yerine Response.Write kullanın.

Stack Overflow sorusuna bakın Console.WriteLine ASP.NET'te nereye gidiyor? .

Hata ayıklama sırasında Çıktı penceresine bir şey yazmak isterseniz, şunu kullanabilirsiniz:

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

ancak bu yalnızca hata ayıklama sırasında çalışacaktır.

Bkz. Stack Overflow sorusu Debug.WriteLine çalışmıyor .


6
Yanıt: Yaz, http yanıt akışına yazacak, @Leap Bun'un bunu istediğini sanmıyorum
labroo

@labroo Elbette. Respone.Write, metni tarayıcıya gösterecektir. Kullanamıyorum
Leap Bun

1
@PraveenVenu System.Diagnostics.Debug.WriteLine ("SomeText") denedim; soruda!
Leap Bun

2
Listeners koleksiyonunu işleyerek System.Diagnostics.Debug çıktısını değiştirebileceğinizi unutmayın. Bkz MSDN fazla bilgi için
T. Fabre

Çıktı pencereniz Hata Ayıklama modunda mı? ve web.config içinde <compilation debug = "true">?
PraveenVenu

28

using System.Diagnostics;

Aşağı açılır menü, aşağıda gösterildiği gibi "Hata Ayıkla" olarak ayarlandığı sürece çıktınıza yazdırılacaktır.

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


görüntü açıklamasını buraya girin


9

Herhangi bir nedenle çıktısını yakalamak Console.WriteLineisterseniz, bunu YAPABİLİRSİNİZ:

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 ("Hata Mesajı") ve Trace.Warn ("Hata Mesajı") web'de kullanılacak yöntemlerdir, sona gitmek için hata mesajı metnini gizlemek için sayfa başlığını trace = true ve yapılandırma dosyasında dekore etmeniz gerekir -kullanıcı ve programcı hata ayıklaması için iis'in kendisinde kalacak şekilde.



0

Bir IIS sunucusu olarak başlatmamalısınız. başlatma ayarınızı kontrol edin launchSettings.json, IIS'ye değil proje adınıza ( dosyanızda bu adı değiştirin) geçtiğinden emin olun .

görüntü açıklamasını buraya girin


-1

Uygulamanızı F5hata ayıklamadan ( Ctrl+ F5) değil, Hata Ayıklama modunda ( ) başlattığınızdan ve ardından Visual Studio'daki Çıktı panelinde "Çıktıyı göster: Hata Ayıkla" yı seçtiğinizden emin olun .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.