在 Windows Communication Foundation (WCF) 应用程序中使用 net.tcp:// 端口共享的最简单方式是使用 NetTcpBinding 公开一个服务。

此绑定提供了一个 PortSharingEnabled 属性,该属性控制是否为配置了此绑定的服务启用 net.tcp:// 端口共享。

下面的过程演示如何使用 NetTcpBinding 类打开一个位于统一资源标识符 (URI) net.tcp://localhost/MyService 上的终结点(首先使用代码,然后使用配置元素)。

使用代码在 NetTcpBinding 上启用 net.tcp:// 端口共享

  1. 创建一个服务以实现一个名为 IMyService 的协定,并将该服务命名为 MyService。

    [ServiceContract]
    interface IMyService
    {
    
       //Define the contract operations.
    
    }
    
    class MyService : IMyService
    {
    
    //Implement the IMyService operations.
    
    }
  2. 创建 NetTcpBinding 类的一个实例,并将 PortSharingEnabled 属性设置为 true。

    NetTcpBinding portsharingBinding = new NetTcpBinding();
    portsharingBinding.PortSharingEnabled = true;
  3. 创建一个 ServiceHost,并在其中为 MyService 添加一个服务终结点,该终结点使用启用了端口共享的 NetTcpBinding 并在终结点地址 URI“net.tcp://localhost/MyService”上进行侦听。

    ServiceHost host = new ServiceHost( typeof( MyService ) );
    host.AddServiceEndpoint( typeof( IMyService ), portsharingBinding,"net.tcp://localhost/MyService" );

  

  注意

  此示例使用默认的 TCP 端口 808,因为终结点地址 URI 未指定其他端口号。由于在传输绑定上显式启用了端口共享,因此该服务可以与其他进程中的其他服务共享端口 808。如果不允许使用端口共享并且其他应用程序已在使用端口 808,则该服务在打开时会引发 AddressAlreadyInUseException

使用配置在 NetTcpBinding 上启用 net.tcp:// 端口共享

  • 下面的示例演示如何使用配置元素来启用端口共享以及添加服务终结点。

    <system.serviceModel>
      <bindings>
        <netTcpBinding name="portSharingBinding"
                       portSharingEnabled="true" />
      </bindings>
      <services>
        <service name="MyService">
            <endpoint address="net.tcp://localhost/MyService"
                      binding="netTcpBinding"
                      contract="IMyService"
                      bindingConfiguration="portSharingBinding" />
        </service>
      </services>
    </system.serviceModel>

如何:启用 Net.TCP 端口共享服务

Windows Communication Foundation (WCF) 使用一个名为 Net.TCP 端口共享服务的 Windows 服务,以方便在多个进程之间共享 TCP 端口。此服务作为 WCF 的一部分进行安装,但作为一项安全预防措施,默认情况下不会启用该服务,因此必须在首次使用它之前手动启用。本主题描述如何使用 Microsoft 管理控制台 (MMC) 管理单元配置 Net TCP 端口共享服务。

有关使用 net.tcp:// 端口共享的示例,请参见 Net.TCP 端口共享示例

使用 MMC 启用 Net.TCP 端口共享服务

  1. 从“开始”菜单中,通过打开“命令提示符”窗口并键入 services.msc,或通过打开“运行”并在“打开”框中键入 services.msc,打开服务管理控制台。

  2. 在服务列表的“名称”列中,右击“Net.Tcp Port Sharing Service”,并从菜单中选择“属性”。

  3. 若要启用服务的手动启动功能,请在“属性”窗口中选择“常规”选项卡,并在“启动类型”框中选择“手动”,然后单击“应用”。

  4. 若要启动服务,请在“服务”状态区域中单击“启动”按钮。现在,服务状态区域应显示为“已启动”。

  5. 若要返回到服务列表,请单击“确定”并退出 MMC 控制台。

from : http://msdn.microsoft.com/zh-cn/library/ms731810(v=vs.110).aspx

WCF服务启用与配置端口共享的更多相关文章

  1. WCF分布式开发步步为赢(4):WCF服务可靠性传输配置与编程开发

    今天继续WCF分布式开发步步为赢系列的第4节:WCF服务可靠性传输配置与编程开发.这个章节,我们要介绍什么是WCF服务的可靠性传输,随便介绍网络协议的概念,Web Service为什么不支持可靠性传出 ...

  2. wcf 服务创建,配置,测试

    一.WCF创建: 常规的创建WCF服务是通过SOAP传输的,很多网站开发人员想放弃使用XML而使用JSON,这个时候可以参照:http://www.cnblogs.com/zhili/p/WCFRes ...

  3. WCF分布式开发步步为赢(3)WCF服务元数据交换、配置及编程开发

    今天我们继续WCF分布式开发步步为赢(3)WCF服务元数据交换.配置及编程开发的学习.经过前面两节的学习,我们了解WCF分布式开发的相关的基本的概念和自定义宿主托管服务的完整的开发和配置过程.今天我们 ...

  4. WCF服务调用超时错误:套接字连接已中止。这可能是由于处理消息时出错或远程主机超过接收超时或者潜在的网络资源问题导致的。本地套接字超时是“00:05:30”(已解决)

    问题: 线上正式环境调用WCF服务正常,但是每次使用本地测试环境调用WCF服务时长就是出现:套接字连接已中止.这可能是由于处理消息时出错或远程主机超过接收超时或者潜在的网络资源问题导致的.本地套接字超 ...

  5. 轻松搞定Win8 IIS支持SVC 从而实现IIS寄宿WCF服务

    写在前面 为了尝试在IIS中寄宿WCF服务,需要配置IIS支持SVC命令,于是便有了在DOS命令中用到ServiceModelReg.exe注册svc命令. 坑爹的是注册成功后就开始报错.无奈之下两次 ...

  6. 客户端使用自定义代理类访问WCF服务 z

    通常在客户端访问WCF服务时,都需要添加服务引用,然后在客户端app.config或 web.config文件中产生WCF服务的客户端配置信息.若是每添加一个服务都是这样做,这样势必会将比较麻烦,能否 ...

  7. 编写寄宿于windows服务的WCF服务

    由于业务中有些任务需要在后台静默长期运行,或者有些服务队响应的要求比较苛刻,这样的WCF服务就不适合寄宿于IIS中.IIS每隔一段时间w3wp进程会闲置超时,造成服务的运行停止,因此这种耗时或者定时任 ...

  8. WCF服务的建立以及调用

    WCF对我来说既陌生又熟悉,陌生是因为没怎么接触过,熟悉是听得太多,今天抽出点时间看了一下WCF,并且自己也写了一WCF的小程序以及调用WCF.步骤为: 1.创建一个解决方案WCF,和一个控制台项目W ...

  9. 客户端使用自定义代理类访问WCF服务

    通常在客户端访问WCF服务时,都需要添加服务引用,然后在客户端app.config或web.config文件中产生WCF服务的客户端配置信息.若是每添加一个服务都是这样做,这样势必会将比较麻烦,能否简 ...

随机推荐

  1. CSS三个定位——常规、浮动、绝对定位

    .dage { width: 868px; background: #5B8C75; border: 10px solid #A08C5A; margin-top: -125px; margin-le ...

  2. 嵌入式&iOS:回调函数(C)与block(OC)回调对比

    学了OC的block,再写C的回调函数有点别扭,对比下区别,回忆记录下. C的回调函数: callBack.h 1).定义一个回调函数的参数数量.类型. typedef void (*CallBack ...

  3. ubuntu下配置vimtab空格数

    vim ~/.vimrc  没有就创建 set tabstop=4 //4就是4个空格

  4. test

    http://img.ivsky.com/img/bizhi/pic/201009/07/fangaoyouhua-015.jpghttp://desk.fd.zol-img.com.cn/t_s16 ...

  5. mono for android学习过程系列教程(3)

    服务 接着上一讲的内容,咱们继续来唠叨概念性的东西.服务,内容提供器,广播接收器等理论知识. 首先是服务,它不是一个可视化的组件或者视图.他是由我们开发人员来定义,可以一直一直运行 的工作单元.跟活动 ...

  6. 刷LeetCode的正确姿势——第1、125题

    最近刷LeetCode比较频繁,就购买了官方的参考电子书 (CleanCodeHandbook),里面有题目的解析和范例源代码,可以省去非常多寻找免费经验分享内容和整理这些资料的时间.惊喜的是,里面的 ...

  7. c += c-- | ++b;

    一切都是从这开始的 一个大一学弟通过QQ给我发来一个C++的题: int c = 8, b = 3; c += c-- | ++b; 问c的值是多少.通过笔算得到c为19,然后随手建了个C#控制台项目 ...

  8. ABP源码分析十八:UI Inputs

    以下图中描述的接口和类都在Abp项目的Runtime/Validation, UI/Inputs目录下的.在当前版本的ABP(0.83)中这些接口和类并没有实际使用到.阅读代码时可以忽略,无需浪费时间 ...

  9. Jquery

    使用时jquery先引进jquery文件包 <script src="jquery-1.11.2.min.js"></script> 一个页面有多个文件jq ...

  10. Jquery Uploadify3.21.与2.1版本 使用中存在的问题--记录三

    Jquery Uploadify是个上传插件. 2.1版本与3.2.1版本有很大区别,方法名跟参数变动较大 1.uploader:该属性是用来存放swf的路径,这个swf就是一个Flash的一个图标, ...