2012-11-12 5 views
7

Nhiều lớp trong khung công tác .NET (đặc biệt là trong các lớp socket/network, đó là những gì tôi đang xem) sử dụng System.Net.GlobalLog (một lớp bên trong) để ghi lại các thông điệp dấu vết ở đâu đó. Bạn có thể xem ví dụ sử dụng những thứ như GlobalLog.Assert và GlobalLog.Print trong lớp SslState:System.Net.GlobalLog - Làm cách nào để xem kết quả đầu ra này?

SslStream source code

Đây là khác biệt so với System.Net.Logging (còn nội bộ) lớp, sử dụng trong số đó cũng có thể được tìm thấy trong các lớp socket/network.

Đối với System.Net.Logging, tôi biết tôi có thể sử dụng một khối cấu hình <.dognostics > trong App.Config và điều đó sẽ dẫn đến các thông báo System.Net.Logging được ghi lại nếu được định cấu hình đúng. Tuy nhiên, điều này không ảnh hưởng đến System.Net.GlobalLog.

Sau khi tìm kiếm khoảng một giờ, tôi dường như không thể tìm thấy bất kỳ thông tin nào về việc định vị đầu ra của System.Net.GlobalLog. Có ai biết làm thế nào để xác định vị trí/xem/kiểm soát đầu ra của điều này?

Trả lời

2

Như bạn đã nói, GlobalLog là một lớp nội bộ để lắp ráp System.Net. Nếu không thể sửa đổi lắp ráp System.Net, bạn sẽ không nhận được quyền truy cập vào lớp đó.

Điều đó nói rằng, bạn có thể muốn xem lại những điều sau đây: http://www.123aspx.com/rotor/RotorSrc.aspx?rot=42941

Dường như bạn phải có cờ biên dịch TRAVEDEBUG bộ để có được nó để làm việc .. nhưng tôi không nhìn thấy nơi nó thực sự làm bất cứ điều gì với thông tin đã đăng nhập. Các ý kiến ​​cho rằng nó được cho là tìm kiếm một thiết lập biến môi trường và kết xuất nhật ký vào một tệp văn bản ở đâu đó trên hệ thống; tuy nhiên, mã ở trang đó có vẻ không đầy đủ hoặc đơn giản là không hoàn thành.

Tôi đoán là bạn cần phải tìm một số cách khác để có quyền truy cập vào thông tin đăng nhập bạn muốn.

+3

Những gì nó đun sôi xuống là, mà không có một phiên bản debug/trave biên dịch của thư viện System.dll, tôi sẽ không nhận được thông tin đó. Ngoài ra, mã nguồn của các lớp này không thể được bước qua trong Visual Studio, do đó, nó không thể thực tế gỡ lỗi những gì đang xảy ra. Trong khi câu trả lời của bạn không giải quyết được vấn đề của tôi, nó là câu trả lời đúng. Giải pháp cuối cùng cho vấn đề của tôi đã kết thúc là "mương SslStream và đi với việc triển khai TLS của BouncyCastle." Tôi đã sử dụng thư viện đó để tạo chứng chỉ, vì vậy điều này không thêm phụ thuộc vào dự án của tôi. –

+0

Ngoài ra, System.Net.Logging cũng là một lớp nội bộ, và chưa có một cách được tài liệu để xem/trực tiếp đầu ra của lớp đó. Chỉ cần không phải GlobalLog. Hấp dẫn. –

0

Tôi không có đủ đại diện để đặt câu trả lời này vào câu trả lời hiện có nhưng tôi muốn tìm hiểu điều gì đã xảy ra trong các lớp TcpClient và Socket nhưng cũng không thể tham gia. Gần nhất tôi nhận được là theo dõi các cuộc gọi API Windows đã được thực hiện. Tôi đã sử dụng công cụ phần mềm miễn phí có tên API Monitor được tìm thấy tại đây: http://www.rohitab.com/apimonitor.