2010-07-22 30 views
6

Tôi viết dịch vụ WCF và muốn giữ nhật ký hoạt động của nó: theo dõi, cảnh báo và thông báo lỗi. Cách tiếp cận rất thẳng thắn là bao bọc tất cả mã dịch vụ hợp đồng bên trong các phần try/catch và viết thông báo lỗi từ catch ngoại lệ lỗi hợp đồng dịch vụ sửa chữa một phần.WCF: xử lý lỗi phía máy chủ. thực hành tốt nhất

Tôi cho rằng sẽ tốt hơn nếu có một điểm mã để nắm bắt tất cả các trường hợp ngoại lệ vô tình thay vì hàng chục try/catch phần. Sẽ hữu ích khi viết các tham số phương thức hợp đồng từ điểm đó để cung cấp thông tin lỗi chi tiết.

Có thể với WCF không?

Thực tiễn tốt nhất trong việc tổ chức xử lý lỗi bên trong các dịch vụ WCF là gì?

Cảm ơn bạn trước!

Trả lời

4

Hãy nhìn vào giao diện IErrorHandler

Nó cho phép một người thực hiện để kiểm soát được thông báo lỗi trả về cho người gọi và tùy chọn thực hiện xử lý lỗi tùy chỉnh như khai thác gỗ

Bạn có thể thực hiện hành vi dịch vụ của bạn (xem giao diện IServiceBehavior) và thêm trình xử lý của bạn vào bộ xử lý lỗi ChannelDispatcher.

Xem WCF Exception Handling with IErrorHandler để biết thêm chi tiết.

+0

Bài viết này không còn khả dụng nữa và tôi không thể tìm thấy nó ở bất kỳ đâu ... bạn có biết bất kỳ nơi nào khác được xuất bản không? –

0

Tôi không chắc chắn nếu điều này làm việc trong WCF nhưng bạn có thể thử các AppDomain.UnhandledException tổ chức sự kiện.

+0

'AppDomain.UnhandledException' không phải là nơi xử lý các ngoại lệ, chỉ để ghi lại chúng. Bởi vì nếu ngoại lệ lan truyền đến mức đó, ứng dụng sẽ chấm dứt. – Darius

Các vấn đề liên quan