WCF 配置文件分解
来源:互联网 发布:淘宝都是天猫 编辑:程序博客网 时间:2024/04/30 03:48
一、概述
配置也是WCF编程中的主要组成部分。他指定向客户端公开的服务,包括服务的地址、服务用于发送和接收消息的传输和消息编码,以及服务需要的安全类型等。使用配置文件后,我们无需编译即可修改WCF的变化的信息,提高了程序的灵活性。
如果在代码里写了配置,那么配置文件将不起作用。
Web程序在Web.config中配置,应用程序中在App.config中配置。
二、服务配置的主要部分
在Config中配置服务的结点为:<system.serviceModel></system.serviceModel>,在这个节点中主要有三个平级的部分。如下代码所示:
<?xml version="1.0" encoding="utf-8"?> <configuration> <system.serviceModel> <!--配置服务和终结点开始--> <services> <service> <endpoint></endpoint> </service> </services> <!--配置服务和终结点结束--> <!--配置绑定开始--> <bindings> <netTcpBinding> <binding> </binding> </netTcpBinding> </bindings> <!--配置绑定结束--> <!--配置行为开始--> <behaviors> <serviceBehaviors> <behavior> </behavior> </serviceBehaviors> </behaviors> <!--配置行为结束--> </system.serviceModel> </configuration>
Service配置节[必须有]:配置服务、接口和终结点。每个Service都会有以下两个属性。name:名称空间.类名[服务的具体实现类]。behaviorConfiguration:一个在behaviors节点中找到的名称。
Binding配置节[可有可无]:配置绑定,如http,tcp等。
Behavior配置节[可有可无]:配置行为,如认证等。
三、实例<?xml version="1.0"?><configuration> <system.serviceModel> <!--服务--> <services> <!--name:名称空间.类型名--> <!--behaviorConfiguration:behavior的名称,请看behavior配置节的名称--> <service name="WCFLibrary.User" behaviorConfiguration="MyBehavior"> <host> <baseAddresses> <!-- 每种传输协议的baseAddress,用于跟使用同样传输协议Endpoint定义的相对地址组成完整的地址, 每种传输协议只能定义一个baseAddress。HTTP的baseAddress同时是service对外发布服务说明页面的URL --> <add baseAddress="http://localhost:8732/Design_Time_Addresses/WCFLibrary/Service/"/> </baseAddresses> </host> <!-- 除非完全限定,否则地址将与上面提供的基址相关,每个服务可以有多个Endpoint --> <!-- Address:指定这个Endpoint对外的URI,这个URI可以是个绝对地址,也可以是个相对于baseAddress的 相对地址。如果此属性为空,则这个Endpoint的地址就是baseAddress--> <!--bindingConfiguration:binding的名称,请看binding配置节的名称--> <endpoint address="" binding="wsHttpBinding" contract="WCFLibrary.IUser" bindingConfiguration="myHttpBinding"> <identity> <dns value="localhost"/> </identity> </endpoint> <!-- 此终结点不使用安全绑定,应在部署前确保其安全或将其删除--> <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/> </service> </services> <!--绑定--> <bindings> <wsHttpBinding> <binding name="myHttpBinding"> <security mode="None"> <message clientCredentialType="Windows" /> </security> </binding> </wsHttpBinding> </bindings> <!--行为--> <behaviors> <serviceBehaviors> <behavior name="MyBehavior"> <!-- httpGetEnabled - bool类型的值,表示是否允许通过HTTP的get方法获取sevice的WSDL元数据 --> <serviceMetadata httpGetEnabled="True"/> </behavior> </serviceBehaviors> </behaviors> </system.serviceModel></configuration>
四、其它
WCF中支持的传输协议包括HTTP、TCP、Peer network(对等网)、IPC(基于命名管道的内部进程通信)以及MSMQ(微软消息队列),每个协议对应一个地址类型:
- HTTP地址:<http://localhost:8080/>
- TCP地址: net.tcp://localhost:8080/
- IPC地址: net.pipe://localhost/ (适用于跨进程,不能使用于不同机器间)
- MSMQ地址: net.msmq://localhost/
- 对等网地址: net.p2p://localhost/
WCF中提供的绑定有:
- BasicHttpBinding: 最简单的绑定类型,通常用于 Web Services。使用 HTTP 协议,Text/XML 编码方式。
- WSHttpBinding: 比 BasicHttpBinding 更加安全,通常用于 non-duplex 服务通讯。
- WSDualHttpBinding: 和 WSHttpBinding 相比,它支持 duplex 类型的服务。
- WSFederationHttpBinding: 支持 WS-Federation 安全通讯协议。
- NetTcpBinding: 效率最高,安全的跨机器通讯方式。
- NetNamedPipeBinding: 安全、可靠、高效的单机服务通讯方式。
- NetMsmqBinding: 使用消息队列在不同机器间进行通讯。
- NetPeerTcpBinding: 使用 P2P 协议在多机器间通讯。
- MsmqIntegrationBinding: 使用现有的消息队列系统进行跨机器通讯。如 MSMQ。
1 0
- WCF 配置文件分解
- WCF配置文件
- wcf 配置文件
- WCF 配置文件
- WCF配置文件
- wcf 配置文件
- WCF配置文件
- WCF 配置文件
- WCF配置文件
- wcf配置文件
- WCF 配置文件
- WCF配置文件
- WCF配置文件
- WCF配置文件
- spring 配置文件分解
- WCF配置文件设置
- WCF配置文件生成工具
- WCF配置文件注释
- C++智能指针与动态内存
- 关于volatile的用法
- 正则表达式语法
- web前端,综合学习网址集合
- eclipse 创建hibernate工程
- WCF 配置文件分解
- 完美三手洗牌
- 【JS】从零开始编一个JS游戏(1)
- Introduction to CFNetwork Programming Guide(译)
- 经典55句
- A+B problem-洛谷 1601
- CSDN博客历程
- REACT Stateless Functional Component
- Add Binary