我的客户端应用程序正在尝试使用传输安全性调用wcf服务。 wcf服务位于硬件负载平衡器后面的2个节点上。
硬件负载平衡器在端口443上获取wcf调用,然后将端口更改为44556。 这给出了端点不匹配错误。那些照顾我们的生产和qa部门的人不希望wcf服务出于任何原因坐在443端口,因此他们为什么要设置端口更改。
然后我将负载均衡器更改为不将端口更改为44556,而是将其保留为端口443,并按预期调用服务。
我的问题是,我可以对我的服务\ IIS进行任何配置吗?当端口443从端口443进入时,该服务是否会接受端口44566上的wcf调用?
谢谢,
答案 0 :(得分:3)
是的,您需要更改服务器和客户端绑定。查看clientVia
元素。
在服务器上:
将listenUri
属性添加到您的终端,并使用urn将地址名称更改为您的服务。 (客户名称相同)
<endpoint address="urn:MyService" listenUri="https://localhost:443/MyService" binding="customBinding" bindingConfiguration="NetHttpBinding" contract=Interface.ITradingPlatform"/>
在客户端:
例如,不是在端点的地址字段中指定URL,而是添加一个urn,然后添加behaviorConfiguration
属性:
<endpoint name="ServerHTTP"
address="urn:MyService"
binding="customBinding"
bindingConfiguration="NetHttpBinding"
contract="Client.ITradingPlatform"
behaviorConfiguration="BehaviorHTTP">
</endpoint>
您还需要定义behaviorConfiguration:
<behaviors>
<endpointBehaviors>
<behavior name="BehaviorHTTP">
<clientVia viaUri="https://yourdomain.com:443/MyService"/>
</behavior>
</endpointBehaviors>
</behaviors>