启用WCF NetTcpBinding的共享端口

在一般的网络环境中,尽可能避免网络攻击,都会通过防火墙将绝大部分的端口封掉,仅仅保留那些常用的网络服务所用的端口,或者为某一个类应用保留少量的端口。IIS 使用HTTP.SYS实现了对80端口的共享使用,所以我们可以在IIS上部署多个应用程序。那么我们在主机上部署多个TCP的WCF服务,只有有限开放端口的时候怎么办呢,答案就是启用NET.TCP的端口共享服务。通过端口共享服务,WCF就可以使用同一个端口部署多个服务:

netport 

启用端口共享服务只需要三个步骤:

  • 启用 NET.TCP Port 共享服务(默认是禁用的)
  • WCF 服务采用TCP 协议
  • 设置 PortSharingEnabled 属性为 true

    第一步. 启用 NET.TCP 端口共享服务

    通过“开始”-〉“控制面板”-〉“管理工具”-〉服务,打开如下图所示的“服务对话框”,然后定位到Net.TCP Port Sharing Service。

    netport1

    第二步:在WCF服务中使用TCP 协议

    在基于TCP的WCF通信中,我们使用NetTcpBinding处理通信的所有细节,这些细节中也包括端口的共享。

    第三步:设置 PortSharingEnabled 属性为 true

    在NetTcpBinding中,定义了一个特殊的属性,PortSharingEnabled,表明是否启动端口共享机制。

    你可以通过通过配置的方式来指定NetTcpBinding的PortSharingEnabled属性:

    <bindings>
       <netTcpBinding>
          <binding name="PortBinding" portSharingEnabled="true" />
       </netTcpBinding>
    </bindings>

    也可以通过代码方式配置绑定启用

    NetTcpBinding binding = new NetTcpBinding();
    binding.PortSharingEnabled = true;

    该绑定隐式允许外部进程(即承载 Net.TCP 端口共享服务的 SMSvcHost.exe)代表它来管理 TCP 套接字。更详细的信息请参见配置 Net.TCP 端口共享服务

  • 作者: 自由、创新、研究、探索……
    出处:http://shanyou.cnblogs.com/
    版权:本文版权归作者和博客园共有
    转载:欢迎转载,为了保存作者的创作热情,请按要求【转载】,谢谢
    要求:未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任
    个人网站: http://www.openbeta.cn
    Tag标签: wcf
    posted @ 2008-11-22 15:49 geff zhang 阅读(601) 评论(0)  编辑 收藏 网摘 所属分类: WCF
    发表评论

    昵称: [登录] [注册]

    主页:

    邮箱:(仅博主可见)

    评论内容:

      登录  注册

    [使用Ctrl+Enter键快速提交评论]

    0 1339002




    历史上的今天:
    2006-11-22 WPF/XML 资源及相关开源项目

    相关文章:

    相关链接: