简介
使用WCF net.tcp激活可以全双工通信,从而实现由服务端向客户端的消息传递。与http双工不同的是:http需要通信双方采用相等的身份,即同时是服务端和客户端的集合体,这也意味着双方在同一网络或均拥有公网IP。
net.tcp直接利用tcp协议进行通信,这就限制了其在浏览器客户端(http环境)的使用,当需要从服务端向浏览器主动通信时,须考虑其他技术如SignalR/HTML5.
站点配置
在配置服务器IIS时,若遇到服务无法访问,可尝试如下操作,这些是某侠学习过程中发现比较容易遗忘的几点:
- 为站点添加net.tcp绑定;
- 若在子网中,设置路由器的转发规则;
- 添加808端口(或其他非默认端口)的防火墙规则;
- 在站点/应用程序配置中添加net.tcp到已启用的协议
项目调试
默认情况下,ASP.NET项目调试会使用IIS Express,但IIS Express是不支持net.tcp激活的,同时WCF net.tcp服务也不会使用其随机端口(这个端口是为http服务准备的)。
若要调试net.tcp服务,应选择“本地IIS”方式,设置和添加虚拟目录指向项目文件夹(可通过属性页自动设置),而本地IIS设置可参考前一节。