WCF入门教程系列四
一、概述
配置也是WCF编程中的主要组成部分。在 以往的.net应用程序中,我们会把DBConn和一些动态加载类及变量写在配置文件里。但WCF有所不同。他指定向客户端公开的服务,包括服务的地址、 服务用于发送和接收消息的传输和消息编码,以及服务需要的安全类型等。使用配置文件后,我们无需编译即可修改WCF的变化的信息,提高了程序的灵活性。
如果在代码里写了配置,那么配置文件将不起作用。
Web程序在Web.config中配置,应用程序中在App.config中配置。
二、服务配置的主要部分
在Config中配置服务的结点为:<system.serviceModel></system.serviceModel>,在这个节点中主要有三个平级的部分。如下代码所示:

1 <?xml version="1.0" encoding="utf-8"?> 2 <configuration> 3 <system.serviceModel> 4 5 <!--配置服务和终结点开始--> 6 <services> 7 <service> 8 <endpoint></endpoint> 9 </service> 10 </services> 11 <!--配置服务和终结点结束--> 12 13 <!--配置绑定开始--> 14 <bindings> 15 <netTcpBinding> 16 <binding> 17 </binding> 18 </netTcpBinding> 19 </bindings> 20 <!--配置绑定结束--> 21 22 <!--配置行为开始--> 23 <behaviors> 24 <serviceBehaviors> 25 <behavior> 26 </behavior> 27 </serviceBehaviors> 28 </behaviors> 29 <!--配置行为结束--> 30 31 </system.serviceModel> 32 </configuration>

Service配置节[必须有]:配置服务、接口和终结点。每个Service都会有以下两个属性。name:名称空间.类名[服务的具体实现类]。behaviorConfiguration:一个在behaviors节点中找到的名称。
Binding配置节[可有可无]:配置绑定,如http,tcp等。
Behavior配置节[可有可无]:配置行为,如认证等。
三、实例

1 <?xml version="1.0"?> 2 <configuration> 3 <system.serviceModel> 4 5 6 <!--服务--> 7 <services> 8 <!--name:名称空间.类型名--> 9 <!--behaviorConfiguration:behavior的名称,请看behavior配置节的名称--> 10 <service name="WCFLibrary.User" behaviorConfiguration="MyBehavior"> 11 <host> 12 <baseAddresses> 13 <!-- 每种传输协议的baseAddress,用于跟使用同样传输协议Endpoint定义的相对地址组成完整的地址, 14 每种传输协议只能定义一个baseAddress。HTTP的baseAddress同时是service对外发布服务说明页面的URL --> 15 <add baseAddress="http://localhost:8732/Design_Time_Addresses/WCFLibrary/Service/"/> 16 </baseAddresses> 17 </host> 18 <!-- 除非完全限定,否则地址将与上面提供的基址相关,每个服务可以有多个Endpoint --> 19 <!-- Address:指定这个Endpoint对外的URI,这个URI可以是个绝对地址,也可以是个相对于baseAddress的 20 相对地址。如果此属性为空,则这个Endpoint的地址就是baseAddress--> 21 <!--bindingConfiguration:binding的名称,请看binding配置节的名称--> 22 <endpoint address="" binding="wsHttpBinding" contract="WCFLibrary.IUser" bindingConfiguration="myHttpBinding"> 23 <identity> 24 <dns value="localhost"/> 25 </identity> 26 </endpoint> 27 <!-- 此终结点不使用安全绑定,应在部署前确保其安全或将其删除--> 28 <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/> 29 </service> 30 </services> 31 32 33 <!--绑定--> 34 <bindings> 35 <wsHttpBinding> 36 <binding name="myHttpBinding"> 37 <security mode="None"> 38 <message clientCredentialType="Windows" /> 39 </security> 40 </binding> 41 </wsHttpBinding> 42 </bindings> 43 44 45 <!--行为--> 46 <behaviors> 47 <serviceBehaviors> 48 <behavior name="MyBehavior"> 49 <!-- httpGetEnabled - bool类型的值,表示是否允许通过HTTP的get方法获取sevice的WSDL元数据 --> 50 <serviceMetadata httpGetEnabled="True"/> 51 </behavior> 52 </serviceBehaviors> 53 </behaviors> 54 55 </system.serviceModel> 56 </configuration>

四、版权
转载请注明出处:http://www.cnblogs.com/iamlilinfeng
WCF入门教程系列四的更多相关文章
- WCF入门教程(四)通过Host代码方式来承载服务 一个WCF使用TCP协议进行通协的例子 jquery ajax调用WCF,采用System.ServiceModel.WebHttpBinding System.ServiceModel.WSHttpBinding协议 学习WCF笔记之二 无废话WCF入门教程一[什么是WCF]
WCF入门教程(四)通过Host代码方式来承载服务 Posted on 2014-05-15 13:03 停留的风 阅读(7681) 评论(0) 编辑 收藏 WCF入门教程(四)通过Host代码方式来 ...
- WCF入门教程(四)通过Host代码方式来承载服务
WCF入门教程(四)通过Host代码方式来承载服务 之前已经讲过WCF对外发布服务的具体方式. WCF入门教程(一)简介 Host承载,可以是web,也可以是控制台程序等等.比WebService有更 ...
- WCF入门教程系列一
一.概述 Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分.由 .NE ...
- WCF入门教程系列三
一.WCF服务应用程序与WCF服务库 我们在平时开发的过程中常用的项目类型有“WCF 服务应用程序”和“WCF服务库”. WCF服务应用程序,是一个可以执行的程序,它有独立的进程,WCF服务类契约的定 ...
- WCF入门教程系列五
一.概述 WCF在通信过程中有三种模式:请求与答复.单向.双工通信.以下我们一一介绍. 二.请求与答复模式 描述: 客户端发送请求,然后一直等待服务端的响应(异步调用除外),期间处于假死状态,直到服务 ...
- WCF入门教程系列二
一.概述 WCF能够建立一个跨平台的安全.可信赖.事务性的解决方案,是一个WebService,.Net Remoting,Enterprise Service,WSE,MSMQ的并集,有一副很经典的 ...
- WCF入门教程系列六
一.前言 前面的几个章节介绍了很多理论基础,如:什么是WCF.WCF中的A.B.C.WCF的传输模式.本文从零开始和大家一起写一个小的WCF应用程序Demo. 大多框架的学习都是从增.删.改.查开始来 ...
- WPF入门教程系列四——Dispatcher介绍
一.Dispatcher介绍 微软在WPF引入了Dispatcher,那么这个Dispatcher的主要作用是什么呢? 不管是WinForm应用程序还是WPF应用程序,实际上都是一个进程,一个进程可以 ...
- WPF入门教程系列四
WPF之Binding的使用(二) 一. 前言 初学WPF经常被Binding搞得苦不堪言,Binding的重用性就不做介绍了,在WPF应用程序开发中Binding是一个非常重要的部分.WPF也是近 ...
随机推荐
- 高仿QQ即时聊天软件开发系列之三登录窗口用户选择下拉框
上一篇高仿QQ即时聊天软件开发系列之二登录窗口界面写了一个大概的布局和原理 这一篇详细说下拉框的实现原理 先上最终效果图 一开始其实只是想给下拉框加一个placeholder效果,让下拉框在未选择未输 ...
- hdu5353
模拟,,, 每个人有一些糖果,每两个人之间只能给一个糖果,问最后是否能让所有人的糖果数量相同,只要确定一个糖果的流向其他的就能够确定. 马虎了,卡了好几天,心塞塞的... #include<io ...
- js判断当前操作系统
function validataOS(){ if(navigator.userAgent.indexOf(“Window”)>0){ return ”Windows”; }else if(na ...
- 轻量级jQuery工具提示插件tooltipsy使用方法
今天想给单位的系统弄一个提示插件,懒得自己做,于是就上网百度了几个jQuery插件,挺好用的.下面以tooltipsy插件为例,说明如何使用这些插件. 一.下载 首先到tooltipsy的官网http ...
- 自适应 or 移动前端页面布局的问题?
说出来,还请各位看官不要笑 - -.哥们至今不是很清楚页面的自适应和移动前端页面开发有什么区别 .有幸哪位看官清楚这些的话,希望能不吝赐教 .A.meta <meta name=& ...
- Readonly and other things about C++
1. in c# readonly can be delayed to initialize in constructor. 2. in c++ totally no readonly. Many p ...
- IOS单例模式(Singleton)
IOS单例模式(Singleton) 单例模式的意思就是只有一个实例.单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例.这个类称为单例类. 1.单例模式的要点: 显然单例模 ...
- Android Studio 设置LogCat 颜色
1. File -> Settings ->Search LogCat 2. Save a schema first, for instance: MyLogCatStyle 3. cho ...
- intel安装mac os
一.变色龙: 1.http://bbs.pcbeta.com/forum.php?mod=viewthread&tid=1518901&extra=page%3D1%26orderby ...
- sql server 2000 下载地址
sql server 2000 下载地址 http://pan.baidu.com/share/link?shareid=146152&uk=1225012539