我有一个WCF客户端和服务,使用HTTPS而不是wsHttpBinding。
一个常见的设置是客户端和服务器组件在同一台机器上。客户端必须设置端点地址以包含服务器的计算机名称,而不是因为SSL原因而包含localhost,即https://mymachine/myservice/service.svc
问题是,默认IIS的IP限制白名单仅为127.0.0.1。如果我在IE7中浏览svc文件,这是有效的,但是在使用WCF客户端时我可以在IIS日志中看到,WCF服务器从WCF客户端的网络/真实IP地址而不是127.0.0.1接收消息,并且因此客户被拒绝。
有没有人知道为什么WCF客户端使用网络IP进行本地通信,而不是127.0.0.1,这可以更改吗?
我们非常感谢其他任何变通方法,但我真的希望避免更改SSL设置或检修绑定。最简单的解决方案似乎是使用客户端新IP更新系统重启时的白名单。
请注意,我已尝试在hosts文件中添加我的机器名,IP 127.0.0.1,但这没有效果。
答案 0 :(得分:0)
替换
https://mymachine/myservice/service.svc
与
https://localhost/myservice/service.svc
工作?
答案 1 :(得分:0)
我对旧版Windows的回忆是Windows在这个类别中有点烦人,因为它似乎是自我命名的。换句话说,Windows似乎认为它可以为其自己的主机名服务信息(即使它可能与外部命名服务所说的不同),而不是让所有命名服从DNS和/ etc / hosts的配置选择。
因此,您可能会看到Windows将主机名与主界面的IP地址相匹配。这可以解释为什么你不能用/ etc / hosts映射主机名。
(仅供参考:这是我对过去个人经历和问题描述的解释。我没有花时间处理这个配置,所以可能会有比我提到的更多。)