您当前的位置: 首页 > 

顺其自然~

暂无认证

  • 3浏览

    0关注

    1317博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

一次搞懂WCF 配置文件

顺其自然~ 发布时间:2020-10-28 09:38:11 ,浏览量:3

1.WCF的服务端配置 服务端的配置文件主要包括endpoint、binding、behavior的配置。一个标准的服务端配置文件所包含的主要xml配置节如下所示:


   
      
         
      
   
   
    --> 
   . -->
      
      元素. -->
      
   
   
   
      
      元素. -->
      
   

1.1 配置节 在配置节中可以定义多个服务,每一个服务都被放到配置节中,WCF的宿主程序可以通过配置文件找到这些定义的服务并发布这些服务。 配置节包含name和behaviorConfiguration属性。其中,name配置了实现Service Contract的类型名。类型名必须是完整地包含了命名空间和类名。而behaviorConfiguration的配置值则与其后的配置节的内容有关。是配置节的主体,其中,配置节包含了endpoint的三个组成部分: Address、Binding和Contract。由于具体的binding配置是在配置节中完成,因而,在中配置了bindingConfiguration属性,指向具体的binding配置。如下所示:


  
    
  

我们也可以定义多个endpoint,例如:


  
    
    
  

如果address值为空,那么endpoint的地址就是默认的基地址(Base Address)。例如ICalculator服务的地址就是http://localhost/servicemodelsamples/service.svc,而 IMetadataExchange服务的地址则为http://localhost/servicemodelsamples/service.svc/mex。这里所谓的基地址可以在中通过配置来定义:



    
        
    


1.2 配置节     当我们在定义一个实现了Service Contract的类时, binding和address信息是客户端必须知道的,否则无法调用该服务。然而,如果需要指定服务在执行方面的相关特性时,就必须定义服务的behavior。在WCF中,定义behavior就可以设置服务的运行时属性,甚至于通过自定义behavior插入一些自定义类型。例如通过指定ServiceMetadataBehavior,可以使WCF服务对外公布Metadata。配置如下:


    
    
      
    
    

在WCF中,behavior被定义为Attribute,其中,System.ServiceModel.ServiceBehaviorAttribute和System.ServiceModel.OperationBehaviorAttribute是最常用的behavior。虽然,behavior作为Attribute可以通过编程的方式直接施加到服务上,但出于灵活性的考虑,将behavior定义到配置文件中才是最好的设计方式。 利用ServiceBehavior与OperationBehavior可以控制服务的如下属性: 1、 对象实例的生命周期; 2、 并发与异步处理; 3、 配置行为; 4、 事务行为; 5、 序列化行为; 6、 元数据转换; 7、 会话的生命周期; 8、 地址过滤以及消息头的处理; 9、 模拟(Impersonation); 例如,通过ServiceBehavior设置对象实例的生命周期:


    
    
      
    
    

 

关注
打赏
1662339380
查看更多评论
立即登录/注册

微信扫码登录

0.2816s