2012-01-25 7 views
11

Giả sử tôi có một ứng dụng WCF được lưu trữ trong IIS. Và trong ứng dụng đó, tôi chạy dòng mã này:Bàn giao tiếp đầu ra ở đâu trong ứng dụng được lưu trữ trên IIS?

Console.WriteLine("Testing, testing 1 2 3"); 

Nó sẽ được viết ở đâu? Hoặc là nó bị bỏ qua và chỉ mất?

Có cách nào khác để chụp khi cần?

+0

Nếu nó được lưu trữ trong IIS, sau đó nó giống như ASP.NET, vì vậy bài này s hould trả lời nó cho bạn http://stackoverflow.com/questions/137660/where-does-console-writeline-go-in-asp-net - Tôi khuyên bạn nên sử dụng System.Diagnostics.Debug.WriteLine thay vào đó, bạn có các tùy chọn đến nơi mà đi. –

Trả lời

15

Hư không. Cụ thể hơn:

NullStream, được định nghĩa là "Luồng không có cửa hàng sao lưu". Tất cả các phương pháp không làm gì hoặc không trả lại gì cả. Đây là lớp nội bộ đến Stream. Đoạn mã sau được lấy từ mã nguồn của Microsoft.

Về cơ bản, khi một trong những phương pháp Console ghi là gọi lần đầu tiên, một cuộc gọi được thực hiện để Windows hàm API GetStdHandle cho "đầu ra tiêu chuẩn". Nếu không có xử lý được trả về, NullStream được tạo và được sử dụng.

trích dẫn từ đây: https://stackoverflow.com/a/2075892/12744

trên thực tế, câu trả lời cùng đi trên để giải quyết phần thứ hai của câu hỏi của bạn quá:

Để thực sự chuyển hướng đầu ra Console, không phụ thuộc vào loại dự án , sử dụng

Console.SetOut(New System.IO.StreamWriter("C:\ConsoleOutput.txt")),