В моем app.config есть следующая конфигурация:
<bindings>
<customBinding>
<binding name="myBinding">
<textMessageEncoding messageVersion="Soap12"/>
<httpTransport/>
</binding>
</customBinding>
<wsHttpBinding>
<binding name="myBinding" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text" textEncoding="utf-8">
<security mode="Transport">
<transport clientCredentialType="Windows"/>
</security>
</binding>
</wsHttpBinding>
</bindings>
<client>
<endpoint address="/../" binding="wsHttpBinding" bindingConfiguration="myBinding" contract="myContract" name="myName"/>
</client>
При использовании этой конфигурации служба работает как положено.
По нескольким причинам я не могу использовать файл app.config в производственной среде, поэтому я хочу вместо этого определить привязки в c #. Я сделал следующее:
var binding = new BasicHttpBinding();
var address = new EndpointAddress(url);
binding.Security = new BasicHttpSecurity() { Mode = BasicHttpSecurityMode.Transport };
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Windows;
var client = new MyClient(binding, address);
Это работает для первой части, но затем не удается использовать неверную версию сообщения. Я вижу, что это определено в пользовательской привязке, но я не уверен, как перевести эту привязку в мой код. Я очень старался, но пока безрезультатно.
Кто-нибудь знает, как это сделать?