WSDUALBINDING实际上通过两个连接来实现双工。一个是客户连接到服务端,一个是服务端连接到客户。
客户连接到服务端一般不会有问题,因为防火墙一般允许从局域网内主动发起的连接(否则你就不能上网)。
但是,防火墙一般会阻断外面世界主动发起的连接,也就是服务端不能直接连接到客户。少了一个连接,你的双工通讯就不能建立。
客户连接到服务端一般不会有问题,因为防火墙一般允许从局域网内主动发起的连接(否则你就不能上网)。
但是,防火墙一般会阻断外面世界主动发起的连接,也就是服务端不能直接连接到客户。少了一个连接,你的双工通讯就不能建立。
* 关防火墙
* 改为nettcp binding(可以双工)
* 改为HttpBinding(不能双工)
* 还是用HttpBinding,但另外用一个长连接来自己实现双工。
如果从socket做起就好了。
我之前看《WCF服务编程》那本书,书上说WSDUALHTTPBINDING 的原理就是创建两条通道来实现双工通信的,这跟你说不是一个意思吗,为什么要开放防火墙才能够正常使用