WCF开发工具已经推出就立即受到了广大开发人员的注意。它独特的通信功能使得开发人员能够轻松的实现特定的功能需求。在这里我们将会针对WCF启用端口的实现做一个详细的介绍。#t#
在一般的网络环境中,尽可能避免网络攻击,都会通过防火墙将绝大部分的端口封掉,仅仅保留那些常用的网络服务所用的端口,或者为某一个类应用保留少量的端口。IIS 使用HTTP.SYS实现了对80端口的共享使用,所以我们可以在IIS上部署多个应用程序。那么我们在主机上部署多个TCP的WCF服务,只有有限开放端口的时候怎么办呢,答案就是启用NET.TCP的端口共享服务。通过端口共享服务,WCF就可以使用同一个端口部署多个服务:
WCF启用端口共享服务只需要三个步骤:
启用 NET.TCP Port 共享服务(默认是禁用的)
WCF 服务采用TCP 协议
设置 PortSharingEnabled 属性为 true
第一步. 启用 NET.TCP 端口共享服务
通过“开始”-〉“控制面板”-〉“管理工具”-〉服务,打开如下图所示的“服务对话框”,然后定位到Net.TCP Port Sharing Service。
第二步:在WCF服务中使用TCP 协议
在基于TCP的WCF通信中,我们使用NetTcpBinding处理通信的所有细节,这些细节中也包括端口的共享。
第三步:设置 PortSharingEnabled 属性为 true
在NetTcpBinding中,定义了一个特殊的属性,PortSharingEnabled,表明是否启动端口共享机制。
你可以通过通过配置的方式来指定NetTcpBinding的PortSharingEnabled属性达到WCF启用端口的目的:
- < bindings>
- < netTcpBinding>
- < binding name="PortBinding" portSharingEnabled="true" />
- < /netTcpBinding>
- < /bindings>
也可以通过代码方式配置绑定启用
- NetTcpBinding binding = new NetTcpBinding();
- binding.PortSharingEnabled = true;
该绑定隐式允许外部进程(即承载 Net.TCP 端口共享服务的 SMSvcHost.exe)代表它来管理 TCP 套接字。以上就是对WCF启用端口的所有步骤的介绍。