2010-11-24 3 views
0

.NET 4.0、WCF、およびwshttpバインディングを使用していくつかのwsメソッドを作成しています。 wsHttpバインディングを使用する理由は、認証、暗号化、署名のサポートが必要なことです。WCF、wsHttpBinding、wsp:policy

このようなサービスを作成してwsdlを調べると、そこにwsp:policyタグがあることがわかります。何とかWCFの設定に影響を与え、このタグを削除する方法はありますか?

このタグがないと暗号化と署名を行うことは可能です。

答えて

2

生成されたWSDLを独自のWSDL(serviceMetadata - externalMetadataLocation)に置き換えることができます。これは、WSDLをゼロから作成するため、あなたが望むものを実現できる唯一の方法です。生成されたWSDLとポリシーの変更点については、IWsdlExportExtensionIPolicyExportExtensionですが、WSDLに新しい項目を追加できますが、API機能(ビルドインセキュリティなど)で追加された項目は削除できません。

Btw。 IMHO WSDLはサービスを記述する必要があり、開発者がクライアントアプリケーションを作成するために必要な唯一の記述でなければならないため、ポリシーを削除することは非常に悪い考えです。ポリシーを削除すると、WSDLはサービスに関する部分的な情報だけをカバーし、無駄になります。間違いなくプロキシ生成ツールとの互換性が損なわれます。私はこのトピックについてquestionに関連していました。

+0

Hey Ladislav、レスポンス10倍。なぜなら、私のWSはこのタグのために問題を抱える可能性のあるJavaシステムによって使用されるからです。このタグを私のwsdl定義の一部として保存するよう心がけてください。関連する1つの質問は、XSD定義へのパスを定義するためにexternalMetadataLocation属性を使用できますか?それともwsdlのみですか? – buhtla

+0

XSDはWSDLから参照されるため、構成にパスを指定する必要はありません。 WSDLで指定します。 –

+0

興味深いことに(2015年)、このタグのためにまだJavaのコンシューマーが問題を抱えています。このような多数の顧客がこれを使用できない場合、私は本当にMSがそれを削除する方法を提供したいと思っています。 – hal9000

関連する問題