在类库中调用Web服务之前,我不得不将端点定义从app.config粘贴到其他正在使用该库的项目中。
为了摆脱这种情况,我尝试将我的app.config设置转换为显式的,以便将Binding和Endpoint定义传递给ClientBase。
var client = new myServiceClient(customBinding, custonEndpoint);
我正在寻找一种将system.serviceModel定义转换为代码的方法。 最简单的定义给了我问题。例如,具有以下配置:
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="NetTcpBinding_MyService" />
</netTcpBinding>
</bindings>
<client>
<endpoint address="net.tcp://address:port/Foo/Services/MyService"
binding="netTcpBinding" bindingConfiguration="NetTcpBinding_MyService"
contract="MyService.MyService" name="NetTcpBinding_MyService">
<identity>
<userPrincipalName value="FooBar@SecondLevel.TopLevel" />
</identity>
</endpoint>
</client>
</system.serviceModel>
我在安全性属性中都找不到与NetTcpBinding
中的参数匹配的属性:
var endPoint = new EndpointAddress(__EndPoint);
var binding = new NetTcpBinding();
binding.Name = "";
导致SSPI错误。