Enterprise Library 4.1 Exception Handling Application Block の ExceptionShielding 機能を、WCF サービスのカスタム RoleProvider と組み合わせて使用しています。
RoleProvider がユーザーがロールに属していないと判断し、IsInRole メソッドから false を返すと、次の例外が発生します。
System.ServiceModel.Security.MessageSecurityException、System.ServiceModel、バージョン = 3.0.0.0、カルチャ = ニュートラル、PublicKeyToken = b77a5c561934e089 '{XXX}' アクションのメッセージに署名メッセージ パーツが指定されていません。
その後、WCFRequestContext
はサービス操作を中止し、クライアントはタイムアウトします。
このリンクで参照されている解決策を試みましたが、成功しませんでした:
http://www.codeplex.com/entlib/Thread/View.aspx?ThreadId=25236
また、EHAB ポリシーから例外タイプを削除しSystem.Exception
、事実上 EHAB がこのポリシーに対して何もしないようにしましたが、これは効果がありません。
ExceptionShielding
この例外を防ぐ唯一の方法は、サービス実装の属性をコメントアウトすることです。
この問題の修正は大歓迎です。