我计划将 wsDualHttpBinding 用于带有回调的 WCF 服务。客户端将是通过 Internet 与服务通信的 Windows 窗体应用程序。显然我无法控制客户端的防火墙,所以我想知道在客户端设置 ClientBaseAddress 的正确方法是什么?
现在在我的初始测试中,我在同一台电脑上运行服务和客户端,我正在设置绑定如下
Dim binding As System.ServiceModel.WSDualHttpBinding = Struct.Endpoint.Binding
binding.ClientBaseAddress = New Uri("http://localhost:6667")
但是我感觉这在通过 Internet 部署时不起作用,因为“localhost”不会转换为机器地址(更不用担心 NAT 转换)并且该端口可能被客户端防火墙阻止。
处理远程客户端回调的基地址的正确方法是什么?
有人告诉我,如果我没有指定 ClientBaseAddress,那么 WCF 基础设施会在端口 80 处创建一个默认客户端基址,用于来自服务的传入连接。由于端口 80 通常对防火墙开放,因此应该可以正常工作。
所以只要告诉我win form wcf客户端应用程序何时运行然后我如何打开我的自定义端口,如“6667”,并指导我应该使用什么库或什么方法,结果响应应该来自客户端路由器到电脑和防火墙不会阻止任何东西。请与现实生活场景讨论这个问题人们如何在现实生活中处理这种情况。谢谢