在代码中为WCF客户端设置消息版本
我想将WSHttpBinding的消息版本设置为EnveloperVersion.Soap11。我不知道怎么做。有人能帮我吗。这是我的绑定代码在代码中为WCF客户端设置消息版本,wcf,wcf-client,wshttpbinding,Wcf,Wcf Client,Wshttpbinding,我想将WSHttpBinding的消息版本设置为EnveloperVersion.Soap11。我不知道怎么做。有人能帮我吗。这是我的绑定代码 var binding = new WSHttpBinding() { UseDefaultWebProxy = true, Security = { Mode = SecurityMode.Transport,
var binding = new WSHttpBinding()
{
UseDefaultWebProxy = true,
Security =
{
Mode = SecurityMode.Transport,
Transport =
{
ClientCredentialType = HttpClientCredentialType.Basic
},
},
};
编辑:
下面是执行此操作的代码
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;
为了实现这一点,您需要在配置或代码中定义自定义绑定 在配置中,您可以这样做:
<system.serviceModel>
<bindings>
<customBinding>
<binding name="Soap11">
<textMessageEncoding messageVersion="Soap11" />
<httpTransport />
</binding>
</customBinding>
</bindings>
<services>
<service name="test">
<endpoint name="TestEP"
address=""
binding="customBinding"
bindingConfiguration="Soap11"
contract="IService" />
</service>
</services>
</system.serviceModel>
然后,在您的服务或客户端配置中,使用如下内容:
<system.serviceModel>
<bindings>
<customBinding>
<binding name="Soap11">
<textMessageEncoding messageVersion="Soap11" />
<httpTransport />
</binding>
</customBinding>
</bindings>
<services>
<service name="test">
<endpoint name="TestEP"
address=""
binding="customBinding"
bindingConfiguration="Soap11"
contract="IService" />
</service>
</services>
</system.serviceModel>
@amz:您应该使用此解决方案更新原始问题;在那里,你可以正确地格式化和呈现它-在这里的评论,这是一个混乱的事情…谢谢,这是我寻找了很长时间的答案!