2012-03-08 4 views
62

Tôi muốn viết một số kết quả cho giao diện điều khiển trong ASP.NET (C#). Nó hoạt động trong một ứng dụng Window, nhưng một ứng dụng Web không hoạt động. Đây là những gì tôi đã thử:Làm thế nào để sử dụng Console.WriteLine trong ASP.NET (C#) trong khi gỡ lỗi?

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 đầu ra. Làm thế nào để giải quyết vấn đề này?

+0

xem tại đây, http://stackoverflow.com/questions/2522099/where-does-debug-write-output-to – labroo

Trả lời

137

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

Xem câu hỏi tràn ngăn xếp Where does Console.WriteLine go in ASP.NET?.

Nếu bạn muốn viết một cái gì đó để cửa sổ Output trong gỡ lỗi, bạn có thể sử dụng

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

nhưng điều này sẽ làm việc chỉ trong thời gian gỡ lỗi.

Xem câu hỏi tràn ngăn xếp Debug.WriteLine not working.

+5

Response.Write sẽ ghi vào luồng phản hồi http, tôi không nghĩ @Leap Bun muốn rằng – labroo

+0

Tôi đã cập nhật câu trả lời của mình – PraveenVenu

+0

@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ó. –

22

using System.Diagnostics;

Sau đây sẽ in ra đầu ra của bạn miễn là thả xuống được thiết lập để 'Debug' như hình dưới đây.

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


enter image description here

+12

Tôi đã thử điều này từ trước, nó không hoạt động! –

7

Nếu vì bất cứ lý do bạn muốn bắt đầu ra của 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; } 
    } 
} 
1

Trace.Write ("Lỗi Thông báo ") và Trace.Warn (" Thông báo lỗi ") là các phương thức để sử dụng trên web, cần phải trang trí tiêu đề trang trace = true và trong tệp cấu hình để ẩn e rror tin nhắn văn bản để đi đến người dùng cuối và để ở lại trong iis chính nó cho lập trình gỡ lỗi.

2

Sử dụng phương thức trả lời trong code-behind.