Setting the message version in code for the WCF client

I want to install a message version for WSHttpBinding for EnvelopeVersion.Soap11. I do not know how to do that. Can someone help me. Here is my binding code

var binding = new WSHttpBinding() { UseDefaultWebProxy = true, Security = { Mode = SecurityMode.Transport, Transport = { ClientCredentialType = HttpClientCredentialType.Basic }, }, }; 

EDIT: here is the code for this

 TransportBindingElement transportElement = null; transportElement = new HttpsTransportBindingElement(); ((HttpsTransportBindingElement)transportElement).AuthenticationScheme = AuthenticationSchemes.Basic; ((HttpsTransportBindingElement) transportElement).KeepAliveEnabled = false; var messegeElement = new TextMessageEncodingBindingElement { MessageVersion = MessageVersion.CreateVersion(EnvelopeVersion.Soap11, AddressingVersion.None), ReaderQuotas = { MaxArrayLength = 200000, MaxBytesPerRead = 200000, MaxDepth = 200000, MaxNameTableCharCount = 200000, MaxStringContentLength = 200000 } }; var binding = new CustomBinding(messegeElement, transportElement); return binding; 
+7
wcf wcf-client
source share
1 answer

To achieve this, you need to define a custom binding configuration or code.

In config, you would do something like this:

 <system.serviceModel> <bindings> <customBinding> <binding name="Soap11"> <textMessageEncoding messageVersion="Soap11" /> <httpTransport /> </binding> </customBinding> </bindings> 

and then in your service or client configuration use something like this:

  <services> <service name="test"> <endpoint name="TestEP" address="" binding="customBinding" bindingConfiguration="Soap11" contract="IService" /> </service> </services> </system.serviceModel> 
+6
source share