1

私はローカルで WCF クライアントを実行していますが、これは常に MessageSecurityException をスローし、次のテキストをスローします

内部例外メッセージ: 「メッセージのセキュリティを検証中にエラーが発生しました

私はトレースを設定し、そのファイルで「内側の」例外メッセージを次のように見ることができます署名されていません。

バインディングはすべて、securityMode="Message" で netTcpBinding を使用して、クライアントとサービスの間で完全に一致します。

サービスの背後にあるインターフェースを装飾する ServiceContract は次のとおりです。

 [ServiceContract(ProtectionLevel = ProtectionLevel.None)]

エラーの原因は何ですか? 私は WCF の専門家ではないので、さらに情報が必要な場合はコメントしてください。何を試すべきかについてのアイデアも役に立ちます。ここで何が起こっているのかわかりません。

4

1 に答える 1

1

デフォルトでは、すべてのメッセージは WCF で署名および暗号化されています。

したがって、この場合、クライアントはメッセージを暗号化して署名している可能性が高いですが、サービス コントラクトの属性のために、サーバーはそれを理解していません。

私の推奨事項: 非常にやむを得ない理由がない限り、これらの設定を改ざんしたり変更したりしないでください。サービスのその属性を忘れて、デフォルトのままにしてください。

[ServiceContract(ProtectionLevel = ProtectionLevel.EncryptAndSign)]

また

[ServiceContract]

本当にオフにする必要がある場合は、会話の両側でオフにする必要があります。クライアントとサーバーの両方が、メッセージが暗号化および署名されているかどうかに同意する必要があります。

マルク

于 2009-08-12T05:18:39.863 に答える