WCF服务端开采和顾客端引用小结

1.服务端开采

1.1 WCF服务创设情势

     
 创制三个WCF服务,总是会成立四个服务接口和三个服务接口完成。经常依据服务宿主的不如,有三种创立格局。

       (1)成立WCF应用程序

       
通过创办WCF服务应用程序,可生成一个带.svc后缀名的文本。该文件与webform中的aspx文件类似,有前置代码,这一个前置代码是劳动接口的完毕。这种艺术开创的WCF服务都承载在IIS或WAS上。

       (2)创建WCF服务库

       
 WCF服务库是贰个类库,如前所述富含三个服务接口和服务实现,此种格局创立的WCF服务可依赖须求寄宿在windows顾客端、windows服务、调控台程序等宿主上。

1.2 WCF服务的商谈

     
 协定定义了服务端能够提供的效应和顾客端能够采取的效果与利益,它独自于劳动完成代码,可分为如下5种协定类型。

(1)数据协定

       
首要用来定义在服务端和顾客端之间传输的复杂性数据类型。对复杂数据类型定义数据协定,首要适用于客商端与服务端分享协定程序集的情事,而一旦客商端是增进援引的点子来成立服务代办,则未要求特意定义数据协定。数据协定的类用[DataContract]特征标识,其里面要类别化的习性必得用[DataMember]特色标志。

注:webservice选择XML系列化,此种种类化只种类化公共字段和个性,由此如对复杂数据类型不特意定义数据协定,则会动用这种系列化情势。

(2)服务协定和操作立下

       
 服务协定和操作立下是最要害的八个体协会定,创制三个WCF服务一定有那八个体协会定。

       
 服务协定用于定义描述了服务的WSDL,它平时为三个接口(也足以为一个类),用[ServiceContract]特色标记。操作立下在劳动协定里面,定义了劳动的操作,并用[OperationContract]特色注脚。

         ServiceContract和OperationContract有几个相比关键的性质,如下

协 定

属 性

描 述

ServiceContract

SessionMode

概念该服务协定是不是同意有对话,其值用SessionMode枚举定义,包含Allowed、NotAllowed、Required。

OperationContract

IsOneWay

是还是不是单向操作,单向操作时,顾客端不会等待服务端的答疑,平常可用于无重返值的操作。

IsInitiating

眼前操作是还是不是运转二个新会话。

IsTerminating

脚下操作是不是关闭对话。

 

(3)信息协定

       
能够钦命传输的数码哪些是位于soap的标题中,哪些是在正文中。音讯协定的数额类用[MessageContract]阐明,类中位居soap标题和正文中的成员用[MessageHeader]和[MessageBodyMember]标明。

(4)错误协定

       
默许意况下,为了安全性,在服务端出现的错误不回来客商端,但也能够把带有有用新闻的失实再次来到给调用者。若要将错误再次回到客商端,可在webConfig中校serviceDebug小节的includeExceptionDetailInFaults属性设为true。强类型化的soap错误协定能够用数码协定定义,并在相应操作立下中用[FaultContract]天性注解,并在该性子的习性中标注错误的项目。

图片 1

1.3 WCF服务宿主

        WCF的服务宿主相比较丰裕,能够是WAS(Windows Activation
瑟维斯,Windows激活服务)、IIS、Windows应用程序、Windows服务、调节台应用程序等。

在创制WCF服务时,若创立的是WCF应用程序,则其劳动后缀名带.svc,其宿主为IIS或WAS。若创设的是WCF服务库,则其通超过实际例化ServiceHost,并调用其指标的open()方法,能够留宿在大肆宿主上,且其相关绑定、端点等配置能够用写代码达成(给ServiceHost对象属性赋值),而毋庸在webConfig中开展示公布局()。 
     

1.4 WCF服务的服务端配置文件

     
 WCF服务端和客商端的布署都能够在其应用程序配置文件的“system.serviceModel”小节。该小节下的配备项根本由bindings、behaviors和services,个中bindings和behaviors是为services小节服务的。

(1)bindings

   bindings小节用来定义绑定,所定义的绑定可增多到service的endpoint小节的bindingConfiguration属性中。当然,该节也足以一贯去掉,因为.net预约义了一部分绑定,所以endpoint小节中央直属机关接利用这几个预订义的绑定就足以了。

图片 2

(2)behaviors

     
 behaviors小节可定义顾客端是否同意通过丰盛引用获取元数据,服务端报错开上下班时间,顾客端是否也同意看见报错等。

图片 3

 

(3)services

   
  services小节定义了所提供的劳务,其下可以有四个service,各个service下第一有三个子节点:host和endpoint。host可定义服务的营地址,且一旦服务要帮助多样传输合同以来,也有四个集散地址。服务端点须求配置服务的对峙地址、绑定和服务协定(要是定义了特别的绑定和行为,则还需将那么些优秀的绑定和作为加进去)。而一旦服务是自宿主的话,还需另加二个mex端点,用来客户端获取元数据。

图片 4

   
 *Wcf的配备,除了手动在应用程序的布置文件里布置外,VS还挑升提供了三个可视化学工业具(WCF服务配置编辑器,在工具菜单下)来扩充示公布局。

2.客商端开拓

2.1 顾客端援引

     
客商端通过生成WCF服务的代理,来调用服务所提供的一些措施。客商端生成代理的法子有三种:

   
 (1)通过获取wsdl生成代理类:客商端通过vs加多援引,去访谈服务端的WSDL文档,并扭转叁个代理类。 
    

   
 (2)通过分享协定程序集生成代理:顾客端援用服务协定的程序集,通过运用CliniqueFactory<TClinique>类写代码来扭转服务代办,进而调用服务的主意。LancomeFactory<TClinique>类的构造函数必要传绑定新闻和端点地址来展开实例化并创建信道,服务用完后,其目的还要调用close()方法关闭信道。

图片 5

2.2 顾客端配置

     
用户端需配置二个与服务端保持一致的端点(在client小节下),端点中需配备的属性包含服务地点、服务绑定、服务协定等。

 

 

 

        

相关文章

admin

网站地图xml地图