WSHttpBinding в ядре .NetStandard или .NET - PullRequest
0 голосов
/ 15 ноября 2018

Я хочу интегрировать протокол NMVS в мое приложение, которое предоставляет файлы wsdl для тестирования, которое написано в виде примера кода в библиотеке .net Framework.

Я хочу протестировать его в приложении .netstandard, .netcore или UWP, но файлы wsdl поддерживают только «WSHttpBinding», который не поддерживается в .netstandard, .net core и UWP.

 <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). "

Каковы другие способы устранения этой проблемы?

Спасибо Имран Хан

1 Ответ

0 голосов
/ 16 ноября 2018

Вот решение вашей проблемы:

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;

Николас Джанноне SPRL (https://www.facebook.com/Nicolas.Giannone.SPRL)

...