web-dev-qa-db-ja.com

.NetStandardまたは.NETCoreでのWSHttpBinding

.netフレームワークライブラリにサンプルコードが記述されているテスト用のwsdlファイルを提供しているアプリケーションにNMVSプロトコルを統合したいと思います。

.netstandard、.netcore、またはUWPアプリでテストしたいのですが、wsdlファイルは、.netstandard、.net core、およびUWPではサポートされていない「WSHttpBinding」のみをサポートしています。

 <wsdl:binding name="WSHttpBinding_ISinglePackServices" type="ns:ISinglePackServices">



WSHttpBinding binding = new WSHttpBinding();
 binding.Security.Mode =  SecurityMode.Transport;
 binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate;

Basichttpbindingを使用しましたが、「応答メッセージのコンテンツタイプapplication/soap + xml; charset = UTF-8がバインディングのコンテンツタイプ(text/xml; charset = utf-8)と一致しません」というエラーが表示されます。 「」

この問題をトラブルシューティングする他の方法は何ですか?

イムランカーンありがとう

6
Imrankhan

これがあなたの問題の解決策です:

var transportSecurityBinding = new BasicHttpBinding();
transportSecurityBinding.Security.Mode = BasicHttpSecurityMode.Transport;
transportSecurityBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate;

var customTransportSecurityBinding = new CustomBinding(transportSecurityBinding);

var textBindingElement = new TextMessageEncodingBindingElement
{
      MessageVersion = MessageVersion.CreateVersion(EnvelopeVersion.Soap12, AddressingVersion.None)
};

// Replace text element to have Soap12 message version
customTransportSecurityBinding.Elements[0] = textBindingElement;
10