WCF服务端开发和客户端引用小结,WCF服务端开发和客户端引用小结

1.服务端开发

1.服务端开发

1.1 WCF服务创制情势

1.1 WCF服务创造模式

     
 创制一个WCF服务,总是会创建一个劳务接口和一个劳务接口实现。平日遵照服务宿主的例外,有两种创设情势。

     
 创制一个WCF服务,总是会创立一个服务接口和一个劳务接口实现。通常按照服务宿主的不同,有二种成立情势。

       (1)成立WCF应用程序

       (1)创立WCF应用程序

       
通过创办WCF服务应用程序,可生成一个带.svc后缀名的文书。该公文与webform中的aspx文件类似,有后置代码,这一个后置代码是服务接口的落实。这种方法开创的WCF服务都承载在IIS或WAS上。

       
通过创办WCF服务应用程序,可生成一个带.svc后缀名的文本。该公文与webform中的aspx文件类似,有后置代码,这一个后置代码是服务接口的实现。那种方法创建的WCF服务都承载在IIS或WAS上。

       (2)创建WCF服务库

       (2)创建WCF服务库

       
 WCF服务库是一个类库,如前所述包含一个服务接口和服务实现,此种格局创设的WCF服务可依照需要寄宿在windows客户端、windows服务、控制台程序等宿主上。

       
 WCF服务库是一个类库,如前所述包含一个劳务接口和劳务实现,此种模式开创的WCF服务可依照需要寄宿在windows客户端、windows服务、控制台程序等宿主上。

1.2 WCF服务的协商

1.2 WCF服务的磋商

     
 协定定义了服务端可以提供的效果和客户端可以利用的效用,它独自于劳动实现代码,可分为如下5种协定类型。

     
 协定定义了服务端可以提供的机能和客户端可以采用的功效,它独自于劳动实现代码,可分为如下5种协定类型。

(1)数据协定

(1)数据协定

       
主要用来定义在服务端和客户端之间传输的复杂性数据类型。对复杂数据类型定义数据协定,首要适用于客户端与服务端共享协定程序集的情形,而一旦客户端是增长引用的章程来创立服务代办,则未必要专门定义数据协定。数据协定的类用[DataContract]特色标记,其中间要连串化的属性必须用[DataMember]特点标记。

       
重要用以定义在服务端和客户端之间传输的复杂数据类型。对复杂数据类型定义数据协定,紧要适用于客户端与服务端共享协定程序集的图景,而只要客户端是增长引用的措施来制造服务代办,则未必要专门定义数据协定。数据协定的类用[DataContract]特色标记,其中间要系列化的性质必须用[DataMember]特点标记。

注:webservice选择XML体系化,此种连串化只体系化公共字段和总体性,由此如对复杂数据类型不专门定义数据协定,则会使用这各个类化模式。

注:webservice选拔XML连串化,此种连串化只系列化公共字段和总体性,由此如对复杂数据类型不专门定义数据协定,则会使用这种连串化模式。

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

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

       
 服务协定和操作立下是最根本的五个协定,创造一个WCF服务一定有这多少个协定。

       
 服务协定和操作立下是最要紧的四个协定,创设一个WCF服务一定有这四个协定。

       
 服务协定用于定义描述了劳务的WSDL,它一般为一个接口(也可以为一个类),用[ServiceContract]特点标明。操作立下在劳务协定里面,定义了劳动的操作,并用[OperationContract]特色标明。

       
 服务协定用于定义描述了劳务的WSDL,它经常为一个接口(也可以为一个类),用[ServiceContract]特性标明。操作立下在劳务协定里面,定义了劳动的操作,并用[OperationContract]特点标明。

         瑟维斯(Service)Contract和OperationContract有多少个相比根本的属性,如下

         瑟维斯(Service)(Service)Contract和OperationContract有多少个相比较重要的习性,如下

协 定

协 定

属 性

属 性

描 述

描 述

ServiceContract

ServiceContract

SessionMode

SessionMode

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

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

OperationContract

OperationContract

IsOneWay

IsOneWay

是不是单向操作,单向操作时,客户端不会等待服务端的作答,一般可用来无重临值的操作。

是不是单向操作,单向操作时,客户端不会等待服务端的对答,一般可用以无再次来到值的操作。

IsInitiating

IsInitiating

眼下操作是否启动一个新会话。

脚下操作是否启动一个新会话。

IsTerminating

IsTerminating

此时此刻操作是否关闭对话。

现阶段操作是否关闭对话。

 

 

(3)音信协定

(3)信息协定

       
可以指定传输的数目哪些是身处soap的标题中,哪些是在正文中。音信协定的数码类用[MessageContract]注脚,类中位居soap标题和正文中的成员用[MessageHeader]和[MessageBodyMember]标明。

       
可以指定传输的数量哪些是坐落soap的题目中,哪些是在正文中。音信协定的数码类用[MessageContract]标志,类中位居soap标题和正文中的成员用[MessageHeader]和[MessageBodyMember]标明。

(4)错误协定

(4)错误协定

       
默认境况下,为了安全性,在服务端出现的荒谬不回来客户端,但也足以把带有有用消息的一无是处再次来到给调用者。若要将错误重回客户端,可在webConfig师长serviceDebug小节的includeExceptionDetailInFaults属性设为true。强类型化的soap错误协定可以用数码协定定义,并在相应操作立下中用[FaultContract]特色标明,并在该特性的性质中标明错误的门类。

       
默认情状下,为了安全性,在服务端出现的谬误不回去客户端,但也得以把带有有用音讯的一无是处重临给调用者。若要将错误再次来到客户端,可在webConfig校官serviceDebug小节的includeExceptionDetailInFaults属性设为true。强类型化的soap错误协定可以用多少协定定义,并在相应操作立下中用[FaultContract]特征标明,并在该特性的属性中标明错误的档次。

新普金娱乐 1

新普金娱乐 2

1.3 WCF服务宿主

1.3 WCF服务宿主

        WCF的服务宿主相比较丰裕,可以是WAS(Windows Activation
Service(Service),Windows激活服务)、IIS、Windows应用程序、Windows服务、控制台应用程序等。

        WCF的劳动宿主相比充裕,可以是WAS(Windows Activation
瑟维斯(Service),Windows激活服务)、IIS、Windows应用程序、Windows服务、控制台应用程序等。

新普金娱乐,在开立WCF服务时,若成立的是WCF应用程序,则其劳动后缀名带.svc,其宿主为IIS或WAS。若创设的是WCF服务库,则其通过实例化Service(Service)Host,并调用其目标的open()方法,可以借宿在任意宿主上,且其连带绑定、端点等配备可以用写代码实现(给ServiceHost对象属性赋值),而毋庸在webConfig中开展配备()。 
     

在创立WCF服务时,若创立的是WCF应用程序,则其服务后缀名带.svc,其宿主为IIS或WAS。若创立的是WCF服务库,则其经过实例化瑟维斯(Service)(Service)Host,并调用其目标的open()方法,可以住宿在任意宿主上,且其连带绑定、端点等安排可以用写代码实现(给Service(Service)Host对象属性赋值),而不要在webConfig中开展安排()。 
     

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

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

     
 WCF服务端和客户端的布局都得以在其应用程序配置文件的“system.serviceModel”小节。该小节下的布置项重大由bindings、behaviors和services,其中bindings和behaviors是为services小节服务的。

     
 WCF服务端和客户端的布局都得以在其应用程序配置文件的“system.serviceModel”小节。该小节下的配置项重点由bindings、behaviors和services,其中bindings和behaviors是为services小节服务的。

(1)bindings

(1)bindings

   bindings小节用来定义绑定,所定义的绑定可添加到service的endpoint小节的bindingConfiguration属性中。当然,该节也可以直接去掉,因为.net预定义了有的绑定,所以endpoint小节中平素动用这一个预定义的绑定就可以了。

   bindings小节用来定义绑定,所定义的绑定可添加到service的endpoint小节的bindingConfiguration属性中。当然,该节也足以从来去掉,因为.net预定义了部分绑定,所以endpoint小节中间接利用这一个预定义的绑定就足以了。

新普金娱乐 3

新普金娱乐 4

(2)behaviors

(2)behaviors

     
 behaviors小节可定义客户端是不是允许通过添加引用获取元数据,服务端报错时,客户端是不是也允许看到报错等。

     
 behaviors小节可定义客户端是不是同意通过充裕引用获取元数据,服务端报错时,客户端是不是也允许看到报错等。

新普金娱乐 5

新普金娱乐 6

 

 

(3)services

(3)services

   
  services小节定义了所提供的劳务,其下得以有三个service,每个service下紧要有六个子节点:host和endpoint。host可定义服务的基地址,且一旦服务要襄助多种传输协议以来,也能够有六个基地址。服务端点需要配置服务的相对地址、绑定和服务协定(假诺定义了特此外绑定和表现,则还需将这一个非常的绑定和行为加进去)。而一旦服务是自宿主的话,还需另加一个mex端点,用来客户端获取元数据。

   
  services小节定义了所提供的服务,其下可以有六个service,每个service下第一有多少个子节点:host和endpoint。host可定义服务的基地址,且如果服务要扶助多种传输协议以来,也足以有五个基地址。服务端点需要安排服务的对峙地址、绑定和劳动协定(假设定义了奇特的绑定和行为,则还需将这一个非常的绑定和作为加进去)。而倘若服务是自宿主的话,还需另加一个mex端点,用来客户端获取元数据。

新普金娱乐 7

新普金娱乐 8

   
 *Wcf的安排,除了手动在应用程序的部署文件里部署外,VS还专程提供了一个可视化工具(WCF服务配置编辑器,在工具菜单下)来进展配置。

   
 *Wcf的部署,除了手动在应用程序的布局文件里布置外,VS还特意提供了一个可视化工具(WCF服务配置编辑器,在工具菜单下)来开展配置。

2.客户端开发

2.客户端开发

2.1 客户端引用

2.1 客户端引用

     
客户端通过生成WCF服务的代理,来调用服务所提供的有的方法。客户端生成代理的法门有几种:

     
客户端通过生成WCF服务的代办,来调用服务所提供的一些格局。客户端生成代理的模式有二种:

   
 (1)通过取得wsdl生成代理类:客户端通过vs添加引用,去访问服务端的WSDL文档,并转移一个代理类。 
    

   
 (1)通过拿到wsdl生成代理类:客户端通过vs添加引用,去拜访服务端的WSDL文档,并转移一个代理类。 
    

   
 (2)通过共享协定程序集生成代理:客户端引用服务协定的程序集,通过行使资生堂Factory<T赫莲娜>类写代码来扭转服务代办,从而调用服务的法子。La PrairieFactory<T海蓝之谜>类的构造函数需要传绑定音讯和端点地址来拓展实例化并制造信道,服务用完后,其目的还要调用close()方法关闭信道。

   
 (2)通过共享协定程序集生成代理:客户端引用服务协定的程序集,通过应用资生堂Factory<T资生堂>类写代码来变化服务代办,从而调用服务的不二法门。ChanelFactory<T资生堂>类的构造函数需要传绑定音信和端点地址来进展实例化并创造信道,服务用完后,其目的还要调用close()方法关闭信道。

新普金娱乐 9

新普金娱乐 10

2.2 客户端配置

2.2 客户端配置

     
客户端需配置一个与服务端保持一致的端点(在client小节下),端点中需安排的性质包括服务地方、服务绑定、服务协定等。

     
客户端需配置一个与服务端保持一致的端点(在client小节下),端点中需安排的习性包括服务地点、服务绑定、服务协定等。

 

 

 

 

 

 

        

        

相关文章