WCF学习心得------(三)配置服务

配置服务        

配置服务概述     

在设计和实现服务协定后,便可以进行服务的配置。在其中可以定义和自定义如何向客户段公开服务,包括指定可以找到服务的地址,服务用于发送和接受消息的传输和消息编码,以及服务需要的安全类型。

配置服务类型

使用配置文件配置

1)     使用配置文件配置WCF服务,可提供在部署时而非设计时提供终结点和服务行为数据的灵活性

2)     可以使用.NETFramework配置技术对WCF服务进行配置。通常向承载WCF服务的Internet信息服务网站的Web.Config文件添加Xml元素。通过这些元素可以逐台计算机更改详细信息。此外WCF包括几个系统提供的元素,用于快速选择服务的最基本功能

3)     WCF使用.NET Framework的System.Configuration配置系统

a)     使用IIs来承载服务--使用Web.Config文件

b)     使用其他宿主环境--或App.Config文件指定设置

 

                                                       服务节点配置图        

Service元素

每个服务都有以下属性:

name:

     制定提供服务协定的实现的类型,这是完全限定名称(命名空间.类型名称)

behaviorConfiguration               

      指定一个在behaviors元素中找到的behavior元素的名称,制定的行为控制操作,例如服务是否允许模拟。

endpoint元素

每个终结点都需要以下属性表示的地址,绑定和协定:

Address

地址唯一标识终结点并告知潜在客户服务的所在位置。

指定服务的统一资源标识符(URI),它可以是一个绝对地址,或者是一个相对于服务基址给定的地址,如果设置为空字符串,则指示在创建服务的ServiceHost时,终结点在指定的基址上可用。

终结点地址的定义

终结点地址由EndpointAddress类表示,该类包含一个表示服务地址的统一资源定位符(URI)。

大多数传输的地址URI包含四个部分,如下:

Http://www.wiki.com:116/Hello.svc/HelloEndPoint

这个URI具有以下四个部分:

方案:http:

计算机:www.wiki.com

端口(可选):116

路径:/Hello.svc/HelloEndPoint

配置文件中配置终结点地址

 

代码中配置终结点地址

元数据终结点地址

WCF服务通过发布一个或多个元数据终结点来发布元数据。发布元数据之后,可以通过标准协议(例如:WS-MetadataExchage(MEX)、HTTP/GET请求)来使用该元数据。

元数据的终结点类似于其他服务终结点:它们都有一个地址、一个绑定、一个协定,并且它们都可以通过配置或使用代码添加到服务主机。

若要启用发布元数据终结点,必须将ServiceMetadataBehavior服务行为添加到该服务,默认情况下WCF服务不发布元数据终结点,所以必须将它们显示添加到服务才能为服务启用元数据发布。

 

元数据终结点示意图

Binding

绑定指定如何与终结点进行通信。

通常指定一个类似WsHttpBinding的系统提供的绑定,但是也可以指定一个用户自定义的绑定。指定的绑定确定传输协议类型,安全和使用的编码,以及是否支持或启用可靠会话、事务或流

bindingConfiguration

如果必须修改绑定的默认值,则可通过在bindings元素中配置相应的binding元素来执行此操作。此属性应赋予与用于更改默认值的binding元素的name属性相同的值。

contract

概述了终结点向客户端公开的功能。

指定定义协定的接口。这是在由service元素的name属性指定的公共语言运行库类型中实现的接口

 

Endpoint节点示意图

WCF基库中预定义的所有绑定说明图

Behavior元素示意图

绑定

绑定是用于指定连接到WCF服务终结点所必须的通信详细信息的对象,在WCF中每个终结点都要求正确指定绑定。

绑定必须指定要使用的传输(TCP、HTTP),还可通过绑定设置如安全、事务支持等其他特征。

绑定中的信息可简单也可复杂。最基本的绑定仅指定必须用于连接到终结点的传输协议(如THHP),一般来说,绑定包含的有关如何连接到终结点的信息属于以下类别中的一种。

协议

确定要使用的安全机制:可靠消息传递功能或事物上下文交流设置

编码

确定消息编码(例如:二进制或文本)

传输

确定要使用基础传输协议(例如:TCP、HTTP)

系统提供的绑定

上边已经提到了绑定的信息业可能很复杂,而且某些设置可能与其他设置不兼容,因此,WCF包含了一组系统提供的绑定,这些内置绑定基本可以满足大多数应用程序要求。一些绑定示例:

BasicHttpBinding

一个HTTP协议绑定,适用于连接到符合WS-I基本配置文件规范的Web服务(例如:基于ASP.NET Web服务的服务)。

WSHttpBinding

一个可互操作的绑定,适用于连接到符合WS-*协议的终结点。

NetNamedPipeBinding

使用.NET Framework 连接到同一计算机上的其他WCF终结点。

NetMsmqBinding

使用.NET Framework 创建与其他WCF终结点的排队消息连接。

使用自己的绑定

使用自己的绑定

如果系统提供的绑定都不具有服务应用程序所需的正确功能组合,则可以创建自己的绑定。方法如下:

1)     可以使用CustomBinding对象从预先存在的绑定元素创建新的绑定。

2)     也可以通过从Binding绑定派生来创建完全由用户定义的绑定。

使用绑定

使用绑定需要执行两个基本的步骤:

1)     选择或定义绑定,最简单方法是选择WCF包含的系统提供绑定中的一个,通过该绑定的默认设置来使用它。

2)     创建一个使用所选择或者定义的绑定的终结点。

定义绑定

可以通过代码或通过配置两种方式定义绑定,且这两种方法与您使用的是系统提供的绑定还是自定义绑定无关。

使用代码可以使在设计时对绑定的定义拥有完全的控制。使用配置则使系统管理员或WCF服务或客户端的用户可以更改绑定的参数,而不必重新编译服务应用程序,由于无法预测用于部署WCF应用程序的特定计算机要求,因为通常需要这种灵活性,通过将绑定(寻址)信息保存在代码外部,人们可以更改这些信息,而不必重新编译或重新部署应用程序。

在这里需要注意的是代码中定义的绑定是在配置中指定的绑定之后创建的,这使得代码定义的绑定可以覆盖配置中定义的任何绑定。

好了,这一节就到这里了,希望可以给大家带来一些帮助。因为这一节需要编码的东西不是很多,所以就没有具体的代码示例,只是截了图,关键在于理解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值