2

http://msdn.microsoft.com/en-us/library/system.servicemodel.wshttpbinding.security.aspxによると、.NET Framework 4.5 の クラスには type の public 属性がありますWSHttpBindingSecuritySystem.ServiceModel.WSHttpSecurity

問題はWSHttpBinding、この属性がないことです。そのタイプのオブジェクトをデバッガーで検査すると、そのようなプロパティは表示されません。

セキュリティ プロパティを表示しないデバッグ インスペクタ

また、Intellisense はSecurityプロパティを表示しません。

ここに画像の説明を入力

重要:Securityオブジェクト初期化子を使用して属性を設定していることに注意してください! ビジュアルスタジオはそれでいいの!?

正しい方法で SOAP webservice の WSSE Usernametoken を通信するには、@Chris Marisic がこのオブジェクトを変更する場所を示します。

このアプリは、.NET Framework 4.5 用にコンパイルされています。

何を与える?

4

1 に答える 1

2

問題はis of typeのBindingプロパティです。これは、すべての Binding 型の親型である汎用抽象クラスです。したがって、そのタイプのインテリセンスが表示されます。ClientBase.EndpointSystem.ServiceModel.Channels.Binding

WSHttpBindingオブジェクト初期化構文で行っているように、割り当てる前に実際のインスタンスにプロパティを設定する必要があります。別の方法は、最初にローカル変数に割り当てることです。

var binding = new WSHttpBinding(SecurityMode....);
binding.Security = new WSHttpSecurity();
// etc.
service.Endpoint.Binding = binding;
于 2013-01-14T21:46:44.293 に答える