配置服务与特性
WCF服务的所有通信都是通过终结点来进行的,IIS寄宿和自我寄宿都需正确配置终结点,才能正常启动服务。
终结点由地址(Address)、绑定(Binding)、契约(Contract)三者来定义:
- Address:解决Where to locate the WCF Service问题
用于指定访问服务资源的地址;如有多个终结点,每个终结点都需要指定一个相对地址。对于IIS寄宿模式,如果服务中仅定义一个终结点,可以为空,即表示服务地址由svc文件所在的虚拟目录地址所决定; - Binding:解决How to communicate with service问题
在WCF中,绑定包含传输方式、编码、安全等方面的指定,Restful WCF中一般简单的指定为webHttpBinding,webHttpBinding允许开发人员通过HTTP请求来公开Web服务,可以很便利的实现REST; - Contract:解决What functionalities do the Service provide问题
主要用于指定服务的契约,向外暴露服务所提供的功能
除了这三者之外,终结点通常还有个BehaviorConfiguration属性,用于定制Endpoint在运行时的一些必要的Behavior。比如上面的配置文件中
对于IIS寄宿和自我寄宿,对应的配置文件为web.config和app.config;配置文件差别不大,如下面的一个典型的配置文件例子:
<system.serviceModel>
<services>
<service name="WcfService.Implementation.EmployeeService">
<endpoint address="http://me.hubwiz.com:80/RestWcfService"
binding="webHttpBinding"
behaviorConfiguration="BehaviorConfig"
contract="WcfService.Contract.IEmployeeService"/>
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="BehaviorConfig">
<webHttp helpEnabled="true"/>
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>