WCF nettcp问题
我创建一个WCF service,baseaddress="net.tcp 192.168.1.5: 4000",并安装到了另外一台服务器上,在本地创建一个应用,通过添加service reference,在wcf service客户端输入net.tcp 地址可以查看到服务暴露的所有操作/方法。然后点击确认。在客户端的app.config 里面可以看到address="net.tcp 192.168.1.5: 4000". 然后在客户端应用程序中写程序调用远程的windows服务。
接下来就会有问题:
如果客户端的app.config保留默认的address="net.tcp 192.168.1.5: 4000",然后尝试去测试调用远程服务,就会报错,不能访问远程服务。如果把address="net.tcp 192.168.1.5: 4000"中ip改成localhost,则调用成功。
服务器的防火墙也是关闭的。请大侠帮忙分析什么原因,搞了很久都搞不明白。
谢谢!
------解决方案--------------------应该是防火墙的问题~ 4000端口被禁止
------解决方案--------------------既然是WCF服务,最好是不带端口号,你可以在调用WCF服务的配置文件中修改。
而且WCF服务的IP地址最终是发布的那台机器的实际IP地址。
------解决方案--------------------需要跨域访问策略文件
<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="*" />
</allow-from>
<grant-to>
<socket-resource port="4502-4534" protocol="tcp" />
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
------解决方案--------------------你先 ping 一下吧。另外可能和dns有关系,你把ip改为服务器的机器名试试。