5

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この例外を防ぐ唯一の方法は、サービス実装の属性をコメントアウトすることです。

この問題の修正は大歓迎です。

4

1 に答える 1

2

その理由を探るのに何時間も費やしました。ここに回答を投稿しました。

基本的に、Fault Action を定義して同じ名前空間に設定する必要があります。

于 2011-03-09T23:34:58.463 に答える