WSDUALBINDING实际上通过两个连接来实现双工。一个是客户连接到服务端,一个是服务端连接到客户。
客户连接到服务端一般不会有问题,因为防火墙一般允许从局域网内主动发起的连接(否则你就不能上网)。
但是,防火墙一般会阻断外面世界主动发起的连接,也就是服务端不能直接连接到客户。少了一个连接,你的双工通讯就不能建立。

解决方案 »

  1.   

    选项:
    * 关防火墙
    * 改为nettcp binding(可以双工)
    * 改为HttpBinding(不能双工)
    * 还是用HttpBinding,但另外用一个长连接来自己实现双工。
      

  2.   

    还是防火墙的问题啊。
    如果从socket做起就好了。
      

  3.   

    问Forty2:
    我之前看《WCF服务编程》那本书,书上说WSDUALHTTPBINDING 的原理就是创建两条通道来实现双工通信的,这跟你说不是一个意思吗,为什么要开放防火墙才能够正常使用