控件中国网现已改版,您看到的是老版本网站的镜像,系统正在为您跳转到新网站首页,请稍候.......
中国最专业的商业控件资讯网产品咨询电话:023-67870900 023-67871946
产品咨询EMAIL:SALES@COMPONENTCN.COM

WCF4.0新特性体验(3):标准终结点(Standard Endpoints)

作者:Frank Xu Lei 出处:博客园 2010年02月08日 阅读:

今天在WCF4.0新特性体验第3节,我们介绍WCF4.0里的标准终结点概念,也就是Standard Endpoints。

  WCF4.0提供了那些标准终结点?他们有什么作用?如何使用标准终结点?如何该表标准终结点的属性?如何自定义一个标注终结点?本文会给出介绍。

  WCF4.0提供了8个已经定义好的标准终结点。下面我们会给出详细介绍,然后是简单的示例代码。标准终结点并不是标准化终结点或者给终结点提供什么参考标准。这个标准终结点其实就是预定义好的终结点,WCF4.0已经内置到Framework里,我们可以直接使用。说白了,就是已经成型,可以直接使用。使用这些定义好的终结点,无非就是可以简化我们的开发工作。

【1】标准终结点介绍:

  WCF4.0提供了8个已经定义好的标准终结点,它们是:mexEndpoint、announcementEndpoint、

discoveryEndpoint、udpAnnouncementEndpoint、udpDiscoveryEndpoint、workflowControlEndpoint、webHttpEndpoint、webScriptEndpoint。这些终结点其实与WCF4.0的新增特性密切相关。从名字我们基本可以看出其作用。其中与WS-Discovery服务动态发现相关的最多。包含4个:announcementEndpoint、 discoveryEndpoint、udpAnnouncementEndpoint、udpDiscoveryEndpoint。各个终结点的作用如下表:

WCF4.0里的标准终结点

名称 描述
mexEndpoint 预定义了一个元数据交换节点,默认使用IMetadataExchange 契约和mexHttpBinding 绑定,address为空。
announcementEndpoint 为discovery的声明功能预定义的标准终结点,在使用此终结点用户需要额外配置address和binding。
discoveryEndpoint 为discovery 操作,预定义的一个标准终结点,在使用此终结点用户需要额外配置address和binding。
udpAnnouncementEndpoint 为使用UDP binding和WS-Discovery 协议规定的多播地址的discovery的声明功能提供的预定义的终结点。它继承自announcementEndpoint。
udpDiscoveryEndpoint 为discovery 操作提供的预定义的终结点。比如通过UDP binding和WS-Discovery 协议规定的多播地址的发现(find) 和解析(resolve。它继承自DiscoveryEndpoint。
workflowControlEndpoint 定义了一个控制workflow 实例执行状态的标准终结点(create、run、suspend、terminate等等)。
webHttpEndpoint 定义了一个配置了WebHttpBinding 和WebHttpBehavior的标准终结点。它继承自WebServiceEndpoint。在编写REST service使用。
webScriptEndpoint 定义了一个配置了WebHttpBinding 和WebScriptEnablingBehavior的标准终结点。它用于编写ASP.NET AJAX程序。

  这里EndPoint提供了2个新的属性:Kind和IsSystemEndpoint.

Kind:这里设定终结点的类别,一般是标准终结点的种类,或者用户自定义的标准终结点。如果不指定,则认为是一般的终结点。

IsSystemEndpoint:Boolean变量,设定终结点是否为系统终结点。

  你可以在服务终结点里直接使用这些标准终结点。使用的方式就是在EndPoint的Kind属性里定制特定的标准终结点的类型。这些标准终结点默认使用缺省属性,当然你也可以在standardEndpoints重新定制这些属性。

【2】代码示例:

  下面我们来演示一下如何使用standardEndpoints。这里主要是通过配置文件方式使用标准终结点。

  (1)标准终结点:我们配置了4个服务终结点,其中3个使用了标准终结点。第一个服务终结点我们Kind不做设置,这个终结点就是普通的服务中介店。具体配置信息如下:

<services>
    
<service name="WCFService.WCFService">
      
<endpoint  name="endpoint1"
          address
="http://localhost:8000/WCFService" 
          binding
="wsHttpBinding" 
          contract
="WCFService.IWCFService">
        
</endpoint>
      
<endpoint name="endpoint2" kind="webHttpEndpoint"  contract="WCFService.IWCFService">
      
</endpoint>
      
<endpoint name="endpoint3" kind="udpDiscoveryEndpoint"   endpointConfiguration="udp">
      
</endpoint>
      
<endpoint name="endpoint4" kind="mexEndpoint"   address="mex"></endpoint>
      
<host>
        
<baseAddresses>
          
<add baseAddress="http://localhost:8000/"/>
        
</baseAddresses>
      
</host>
    
</service>
  
</services>

  (2)运行结果:

  配置完毕4个终结点以后,我们可以启动宿主查看终结点信息。终结点2、3、4标准终结点,分别引用webHttpEndpointudpDiscoveryEndpoint和mexEndpoint。运行结果如下图:

  (3)覆盖属性:

  如果我们感觉这些标准终结点的功能不符合要求,我们也可以通过standardEndpoints重新定制这些默认终结点的属性信息。配置代码如下:

  <standardEndpoints>
    
<udpDiscoveryEndpoint>
      
<standardEndpoint name="udp" maxResponseDelay="00:01:00"  discoveryMode="Adhoc" discoveryVersion="WSDiscovery11"/>
    
</udpDiscoveryEndpoint>
  
</standardEndpoints>

  这里你只需要把name应用到特定的标准终结点上即可。使用终结点配置属性,例如:endpointConfiguration="udp"。

  (4)自定义标准终结点:

  英文原文是custom standard endpoint 。我们可以定制自己的标准终结点,以便其他地方使用。这里我们需要使用extensions节点,在配置文件里指定新的标准终结点的name和type。name比如能与WCF4.0提供的标准终结点重复,而type为:namesapce,class。示例配置:

    <extensions>
      
<endpointExtensions>
        
<add name="customStandEndpoint" type="WCFService.IWCFService, WCFService" />
      
</endpointExtensions>
    
</extensions>

  然后在服务终结点里使用:

 

      <endpoint  name="endpoint6"  kind="customStandEndpoint"
          address
="http://localhost:8000/WCFService" 
          binding
="wsHttpBinding" 
          contract
="WCFService.IWCFService">
        
</endpoint>

【3】总结:

  以上就是WCF4.0里标准终结点(standard endpoint)的介绍。目前版本,WCF4.0提供了8个已经定义好的标准终结点,它们是:mexEndpoint、announcementEndpoint、 discoveryEndpoint、udpAnnouncementEndpoint、udpDiscoveryEndpoint、workflowControlEndpoint、webHttpEndpoint、webScriptEndpoint。

  (1)这些预定义的标准终结点可以方便我们的开发工作。当然也提供了属性定制功能,让我们可以根据自己的需要定制特性。  

  (2)不过要想利用这些标准终结点,目前还只能参考英文文档,不过英文资料也很少。(学习的时间可能需要很久。可能还不如自己配置一个终结点来的方便。)

  (3)最终的标准终结点的数量或者特定参考最后的发布文档。这里还是基于Beta2。

热推产品

  • ActiveReport... 强大的.NET报表设计、浏览、打印、转换控件,可以同时用于WindowsForms谀坔攀戀Forms平台下......
  • AnyChart AnyChart使你可以创建出绚丽的交互式的Flash和HTML5的图表和仪表控件。可以用于仪表盘的创......
首页 | 新闻中心 | 产品中心 | 技术文档 | 友情连接 | 关于磐岩 | 技术支持中心 | 联系我们 | 帮助中心 Copyright-2006 ComponentCN.com all rights reserved.重庆磐岩科技有限公司(控件中国网) 版权所有 电话:023 - 67870900 传真:023 - 67870270 产品咨询:sales@componentcn.com 渝ICP备12000264号 法律顾问:元炳律师事务所 重庆市江北区塔坪36号维丰创意绿苑A座28-5 邮编:400020
在线客服
在线客服系统
在线客服
在线客服系统