WCF入门二[WCF的配置文件]
一、概述
往往在很多项目中数据库连接字符串、变量和一些动态的加载类会写在配置文件中。WCF也会在配置文件中写入一些配置参数,比如服务的地址、服务用于发送和接收消息的传输和消息编码等,通过配置文件可以灵活的修改,不需要再编译。
二、终结点Endpoint
首先我们需要了解WCF的一个概念就是终结点Endpoint,WCF服务通过定义一个或者多个终结点,当服务端和客户端的终结点相互匹配的时候才可以完成通信。终结点Endpoint由三部分组成Address、Binding和Contract。
Address:直译就是地址,相当于URL,通过地址可以访问到WCF的服务。
Binding:直译是绑定,绑定的是客户端和服务端底层的细节,比如传输的时候使用什么编码格式xml、text、二进制等。采用tcp还是http等等。
Contract:就是契约,规定我们那些服务接口可以访问,那些不能访问。暴露WCF服务的某些方法。
终结点的详细配置内容就是写在配置文件中,用于WCF实现多个应用程序之间的通信。
三、WCF配置文件的组成
WCF的配置详情都在
<?xml version="1.0" encoding="utf-8"?>"false" performanceCountersEnabled="false" tracingEnabled="false">
1.
该节点是必须有的,配置服务、接口和终结点。可以有多个service节点,每个service节点有name(服务的具体实现,格式应为 Namespace.Class.
)和behaviorConfiguration(一个字符串,其中包含要用于实例化服务的行为(behavior)的行为名),并且可以在service节点下存在多个终结点
"WcfServiceLibrary1.Service1"> "http://localhost:8733/Design_Time_Addresses/WcfServiceLibrary1/Service1/" /> "" binding="basicHttpBinding" contract="WcfServiceLibrary1.IService1"> "localhost"/> "mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
2.
此节包含标准绑定和自定义绑定的集合。每一项都是一个可由其唯一 name 进行标识的 binding 元素。服务通过用 name 与绑定进行链接来使用绑定。绑定包含以下元素:
- 协议堆栈确定用于发送到终结点的消息的安全性、可靠性和上下文流设置。
- 传输确定将消息发送到终结点时使用的基础传输协议,例如 TCP 或 HTTP。
- 编码确定用于发送到终结点的消息的网络编码,例如,文本/XML、二进制或消息传输优化机制 (MTOM)。
因为绑定的内容节点非常多,详细的还是看详细文档,这里只举一个实例:
<binding closeTimeout="TimeSpan" name="string" openTimeout="TimeSpan" receiveTimeout="TimeSpan" sendTimeout="TimeSpan">
3.
此元素定义名为 endpointBehaviors 和 serviceBehaviors 的两个子集合。每个集合分别定义终结点和服务所使用的行为元素。每个行为元素由其唯一的 name 特性标识。比如:是否允许客户端获得服务的元数据、路由修改、操作访问权限设置、服务的限制机制、服务请求的超时时间等。实例如下:
"True" httpsGetEnabled="True"/> "False" />
四、其他
新建一个WCF服务程序后会有一个Web.config文件有
五、说明
这个随笔是我自己学习流程的一个记录,和大家共勉。