Làm thế nào để sử dụng Console.WriteLine trong ASP.NET (C #) trong khi gỡ lỗi?


88

Tôi muốn ghi một số kết quả vào bảng điều khiển trong ASP.NET (C #). Nó hoạt động trong ứng dụng Window, nhưng ứng dụng Web không hoạt động. Đây là những gì tôi đã thử:

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

Nhưng tôi không thấy gì trong bảng Output. Làm thế nào để giải quyết vấn đề này?


Câu trả lời:


183

Console.Write sẽ không hoạt động trong ASP.NET vì nó được gọi bằng trình duyệt. Sử dụng Response.Write để thay thế.

Xem câu hỏi Stack Overflow Console.WriteLine đi đâu trong ASP.NET? .

Nếu bạn muốn ghi nội dung nào đó vào cửa sổ Output trong khi gỡ lỗi, bạn có thể sử dụng

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

nhưng điều này sẽ chỉ hoạt động trong quá trình gỡ lỗi.

Xem câu hỏi Stack Overflow Debug.WriteLine không hoạt động .


6
Response.Write sẽ ghi vào luồng phản hồi http, tôi không nghĩ @Leap Bun muốn điều đó
labroo

@labroo Tất nhiên. Respone.Write sẽ hiển thị văn bản cho trình duyệt. Tôi không thể sử dụng nó.
Leap Bun

1
@PraveenVenu Tôi đã dùng thử System.Diagnostics.Debug.WriteLine ("SomeText"); trong câu hỏi!
Leap Bun

2
Lưu ý rằng bạn có thể thay đổi đầu ra của System.Diagnostics.Debug bằng cách thao tác với bộ sưu tập Người nghe. Xem MSDN để biết thêm thông tin
T. Fabre

Nhận xét tôi đã thêm vào câu hỏi của bạn không giúp ích được gì?
labroo

27

using System.Diagnostics;

Nội dung sau sẽ được in ra đầu ra của bạn miễn là menu thả xuống được đặt thành 'Gỡ lỗi' như hình dưới đây.

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


nhập mô tả hình ảnh ở đây


9

Nếu vì bất kỳ lý do gì bạn muốn bắt đầu ra Console.WriteLine, bạn CÓ THỂ làm điều này:

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 ("Thông báo lỗi") và Trace.Warn ("Thông báo lỗi") là các phương thức sử dụng trong web, cần trang trí tiêu đề trang trace = true và trong tệp cấu hình để ẩn văn bản thông báo lỗi đi đến cuối -người dùng và như vậy ở trong chính iis để gỡ lỗi lập trình viên.



0

Bạn không nên khởi chạy dưới dạng máy chủ IIS. kiểm tra cài đặt khởi chạy của bạn, đảm bảo rằng nó đã chuyển sang tên dự án của bạn (thay đổi tên này trong launchSettings.jsontệp của bạn ), không phải IIS.

nhập mô tả hình ảnh ở đây


-1

Đảm bảo rằng bạn khởi động ứng dụng của mình ở chế độ Gỡ lỗi ( F5), không phải không gỡ lỗi ( Ctrl+ F5) rồi chọn "Hiển thị đầu ra từ: Gỡ lỗi" trong bảng Đầu ra trong Visual Studio.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.