วิธีใช้ Console.WriteLine ใน ASP.NET (C #) ระหว่างการดีบัก


89

ฉันต้องการเขียนผลลัพธ์ลงคอนโซลใน ASP.NET (C #) ทำงานในแอปพลิเคชัน Window แต่เว็บแอปพลิเคชันไม่ทำงาน นี่คือสิ่งที่ฉันได้ลอง:

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

แต่ฉันไม่เห็นอะไรเลยในแผงเอาต์พุต ฉันจะแก้ปัญหานี้ได้อย่างไร?


คำตอบ:


186

Console.Write จะไม่ทำงานใน ASP.NET ตามที่เรียกโดยใช้เบราว์เซอร์ ใช้ Response.Write แทน

ดูคำถาม Stack Overflow Console.WriteLine อยู่ที่ไหนใน ASP.NET .

หากคุณต้องการเขียนบางสิ่งลงในหน้าต่าง Output ในระหว่างการดีบักคุณสามารถใช้

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

แต่จะใช้ได้เฉพาะในระหว่างการดีบัก

ดูกองมากเกินคำถามDebug.WriteLine ไม่ทำงาน


6
Response.Write จะเขียนไปยังสตรีมตอบกลับ http ฉันไม่คิดว่า @Leap Bun ต้องการแบบนั้น
labroo

@labroo แน่นอน. Respone.Write จะแสดงข้อความไปยังเบราว์เซอร์ ฉันไม่สามารถใช้มันได้
เผ่นบุญ

1
@PraveenVenu ฉันลองแล้ว System.Diagnostics.Debug.WriteLine ("SomeText"); ในคำถาม!
เผ่นบุญ

2
โปรดทราบว่าคุณสามารถเปลี่ยนเอาต์พุตของ System.Diagnostics.Debug ได้โดยจัดการคอลเล็กชัน Listeners ดูMSDNสำหรับข้อมูลเพิ่มเติม
T. Fabre

หน้าต่างผลลัพธ์ของคุณอยู่ในโหมดแก้ไขข้อบกพร่องหรือไม่ และ <compilation debug = "true"> ใน web.config?
PraveenVenu

28

using System.Diagnostics;

สิ่งต่อไปนี้จะพิมพ์ไปยังผลลัพธ์ของคุณตราบเท่าที่ดรอปดาวน์ถูกตั้งค่าเป็น 'ดีบัก' ดังที่แสดงด้านล่าง

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


ใส่คำอธิบายภาพที่นี่


9

หากคุณต้องการจับผลลัพธ์ด้วยเหตุผลใดก็ตามConsole.WriteLineคุณสามารถทำได้:

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") และ Trace.Warn ("Error Message") เป็นวิธีการที่จะใช้ในเว็บต้องตกแต่ง page header trace = true และในไฟล์ config เพื่อซ่อนข้อความ error เพื่อไปสิ้นสุด - ผู้ใช้และเพื่อให้อยู่ใน iis สำหรับการดีบักของโปรแกรมเมอร์



0

คุณไม่ควรเปิดเป็นเซิร์ฟเวอร์ IIS ตรวจสอบการตั้งค่าการเปิดตัวของคุณตรวจสอบให้แน่ใจว่าได้เปลี่ยนเป็นชื่อโปรเจ็กต์ของคุณแล้ว (เปลี่ยนชื่อนี้ในlaunchSettings.jsonไฟล์ของคุณ) ไม่ใช่ IIS

ใส่คำอธิบายภาพที่นี่


-1

ตรวจสอบให้แน่ใจว่าคุณเริ่มแอปพลิเคชันของคุณในโหมดดีบัก ( F5) ไม่ใช่โดยไม่ต้องดีบัก ( Ctrl+ F5) จากนั้นเลือก "แสดงผลลัพธ์จาก: ดีบัก" ในแผงผลลัพธ์ใน Visual Studio

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.