【发布时间】:2019-01-16 20:32:20
【问题描述】:
我的 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);
这适用于第一部分,但随后因使用不正确的消息版本而失败。我可以看到这是在自定义绑定中定义的,但我不确定如何将此绑定转换为我的代码。我确实尝试了很多,但到目前为止还没有结果。
有人知道怎么做吗?
【问题讨论】:
-
你能改进你的问题吗?我不明白。您想继续使用配置文件并在代码中使用它吗?
-
更新了我的问题,希望现在更清楚了。
-
谢谢。能不能也加一下错误信息?