2010-10-28 24 views
8

Tôi có một số dịch vụ WCF với các thuộc tính được xác định trước FaultContract. Khi các trường hợp ngoại lệ FaultException<TDetail> được ném, chúng sẽ gửi StackTrace, Nguồn và các thông tin có khả năng không lưu khác.WCF FaultException Không gửi StackTrace

Có thể chỉ trả lại:

  • chi tiết (từ TDetail generic)
  • FaultMessage
  • FaultCode
  • (và có thể) FaultReason

Trả lời

3

Bạn đã cố gắng lăn ngoại lệ lỗi của riêng bạn bằng cách sử dụng IErrorHandler? Ngoài ra hãy đảm bảo trong tệp cấu hình ứng dụng của bạn, thuộc tính IncludeExceptionDetailInFaults được đặt thành false và, this có thể hữu ích cho các điều kiện tốt nhất.

+2

IncludeExceptionDetailInFaults đã là false. Như tôi đã hiểu, IncludeExceptionDetailInFaults chỉ áp dụng cho các ngoại lệ chưa được xử lý chưa thuộc loại FaultException . Tôi đã triển khai IErrorHandler để thực thi chính sách rằng tất cả các hoạt động có một FaultContract cơ sở được chỉ định và tự động ghi lại và trả lại các ngoại lệ chưa được xử lý trong loại lỗi cơ sở đó.Điều tôi không biết là tại sao WCF chuyển nhiều thông tin hơn được định nghĩa trong FaultContract. Tôi hiện đang trải nghiệm hành vi này với wsHttpBinding và một ứng dụng khách SOAP. – reifnir

+3

Nó chỉ ra rằng không có một vấn đề với StackTrace được gửi lại cho khách hàng. (Vấn đề nằm ở phía trước bàn phím.) Tôi đã hiểu sai câu trả lời nhận được từ WCFStorm trong ngăn Phản hồi. Stacktrace và source chỉ là thông tin về client chứ không phải server. IncludeExceptionDetailInFaults chắc chắn chỉ áp dụng cho các ngoại lệ mà không phải là "nổi tiếng". Cảm ơn sự giúp đỡ Terrance. – reifnir

+0

Xin lỗi tôi không thể giúp thêm ... nhưng chào mừng bạn. – Terrance

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