2009-04-30 6 views
5

Chúng tôi đang sử dụng Thư viện Enterprise 4.1 Exception Handling tính năng ExceptionShielding Application Block trong sự kết hợp với một RoleProvider tùy chỉnh với các dịch vụ WCF của chúng tôi.System.ServiceModel.Security.MessageSecurityException occuring dưới ExceptionShielding

Khi RoleProvider xác định một người dùng không trong một vai trò và trả về false từ phương pháp IsInRole, các ngoại lệ sau đây đang xảy ra:

 
    System.ServiceModel.Security.MessageSecurityException, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 
    No signature message parts were specified for messages with the '{XXX}' action. 

WCF sau đó hủy bỏ các RequestContext của hoạt động dịch vụ, và thời gian của khách hàng ngoài.

tôi đã cố gắng giải pháp gọi tại liên kết này không có thành công:

http://www.codeplex.com/entlib/Thread/View.aspx?ThreadId=25236

Chúng tôi cũng loại bỏ các loại System.Exception ngoại lệ từ chính sách ehab, có hiệu quả ehab làm gì cho chính sách này, và điều này không có hiệu lực.

Điều duy nhất ngăn chặn ngoại lệ này là nhận xét ra thuộc tính ExceptionShielding về triển khai dịch vụ.

Mọi sự khắc phục cho vấn đề này sẽ được đánh giá cao.

Trả lời

2

Tôi đã dành hàng giờ đồng hồ để tìm hiểu lý do. Tôi đã đăng câu trả lời của mình here.

Về cơ bản bạn cần xác định Hành động lỗi và đặt nó thành cùng một không gian tên.