[WCF 4.0新特性] 标准终结点与无(.SVC)文件服务激活
今天介绍WCF 4.0的另外两个新特性:标准终结点(Standard Endpoint)和无(.SVC)文件服务激活(File-Less Activation)。前者实现了针对典型通信场景对终结点的定制,后者让你在进行IIS/WAS的服务寄宿中无须定义.svc文件。 一、标准终结点我们知道,绑定的本质就是一系列相关绑定元素的有序集合,而系统绑定就是基于若干典型的通信场景对相关绑定元素的整合。WCF通过系统绑定对绑定元素进行了定制,那么能否在终结点级别对组成该终结点的ABC(地址、绑定和契约)也进行相应的定制呢?实际上这对于最新版本的WCF是可行的,我们将这个机制称为“标准终结点”。 所谓标准终结点,就是针对典型的通信场景选择组成终结点的要素(主要是绑定和契约)进而创建出一个标准的终结点。在使用的时候,如果你需要的终结点要素和标准终结点完全一致,就无需进行重复的设置;如果不一致,则只需要单独对此进行重新设置以覆盖定义在标准终结点的默认设置。 比如说,对于用于发布元数据的终结点总是将IMetadataExchange作为其契约,并且在大部分情况下使用MexHttpBinding。如果我们基于这两个元素创建一个标准的MexEndpoint,那么在为服务配置发布元数据的终结点的时候就只需要指定地址就可以了。实际上,WCF确实为我们创建了这么一个标准的MexEndpoint终结点。包含MexEndpoint终结点在内,WCF总共为我们定义了如下面的列表所示的9个标准终结点。
如果你希望直接为某个服务配置一个标准终结点,可以借助于WCF4.0为终结点的配置节添加的一个新的配置属性kind,该属性表示标准终结点名称。在上面的配置中,我为服务配置了一个标准终结点mexEndpoint以实现基于MEX终结点形式的元数据发布。 1: <?xml version="1.0"?> 3: system.serviceModel 4: ... 6: service name="Artech.WcfServices.Service.CalculatorService" 7: host 8: baseAddresses 9: add baseAddress="http://127.0.0.1:3721/calculatorservice"/> 13: kind="mexEndpoint" address="mex" 14: service 15: > 5: 6: ="http://127.0.0.1:3721/calculatorservice" ="udpDiscoveryEndpoint" endpointConfiguration="wsd11" 8: 9: 10: standardEndpoints 11: udpDiscoveryEndpointstandardEndpoint ="wsd11" discoveryVersion="WSDiscovery11" 13: 14: 15: 16: ... 再举个例子,如何我们需要通过IIS的方式来寄宿我们熟悉的CalculatorService,在不需要定义.svc的情况下,下面的XML片断代表了所需的最少配置。借助于默认终结点(《[WCF 4.0新特性] 默认终结点》)的自动添加机制,WCF会为寄宿服务实现的每个服务契约针对于每一个基地址添加一个终结点。由于通过配置属性relativeAddress定义的地址就是服务的相对基地址,所以基于这个地址的终结点回自动添加。 4: 5: 6: ="Artech.WcfServices.Service.CalculatorService" ="OrderService.svc" 10: >
? 附上刚刚收到的9个新版新浪微博邀请码,有兴趣的朋友可以体验一下: http://weibo.com/upcode/dgPcW4Gd7
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ASP.NET MVC中使用区域时的配置错误4
- asp.net – 如何为Bootstrap按钮创建Button_Click()事件?
- asp.net-mvc – ASP.NET MVC 4移动显示模式停止工作
- asp.net – Visual Studio总是打开网站而不是编辑的网页
- asp.net-mvc – MVC中的Windows身份验证
- 关于Type Initializer和 BeforeFieldInit的问题,看看大家能
- asp.net-mvc – ASP.NET MVC角色授权
- Odata V4中的流支持
- asp.net – 无法使用URL重写出站规则来更改IIS响应代码
- ASP.NET 5 OAuth承载令牌认证
- asp.net-mvc – 多个字段的远程验证
- asp.net-mvc – 使用Universal Providers的ASP.N
- 使用webforms的ASP.NET中的静态和动态控件之间有
- asp.net-mvc – 重定向到不同的控制器
- asp.net – 如何将数据绑定表达式的值存储到变量
- asp.net-mvc在post action中获取字典或如何将For
- asp.net – Crystal Reports仅在本地显示条形码
- asp.net – 如何从包含UserControls的Repeater获
- asp.net – 可以使用__doPostBack()吗?
- asp.net-mvc – 所选值不适用于SelectList