一、概述

  配置也是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入门教程系列四的更多相关文章

  1. 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代码方式来 ...

  2. WCF入门教程(四)通过Host代码方式来承载服务

    WCF入门教程(四)通过Host代码方式来承载服务 之前已经讲过WCF对外发布服务的具体方式. WCF入门教程(一)简介 Host承载,可以是web,也可以是控制台程序等等.比WebService有更 ...

  3. WCF入门教程系列一

    一.概述 Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分.由 .NE ...

  4. WCF入门教程系列三

    一.WCF服务应用程序与WCF服务库 我们在平时开发的过程中常用的项目类型有“WCF 服务应用程序”和“WCF服务库”. WCF服务应用程序,是一个可以执行的程序,它有独立的进程,WCF服务类契约的定 ...

  5. WCF入门教程系列五

    一.概述 WCF在通信过程中有三种模式:请求与答复.单向.双工通信.以下我们一一介绍. 二.请求与答复模式 描述: 客户端发送请求,然后一直等待服务端的响应(异步调用除外),期间处于假死状态,直到服务 ...

  6. WCF入门教程系列二

    一.概述 WCF能够建立一个跨平台的安全.可信赖.事务性的解决方案,是一个WebService,.Net Remoting,Enterprise Service,WSE,MSMQ的并集,有一副很经典的 ...

  7. WCF入门教程系列六

    一.前言 前面的几个章节介绍了很多理论基础,如:什么是WCF.WCF中的A.B.C.WCF的传输模式.本文从零开始和大家一起写一个小的WCF应用程序Demo. 大多框架的学习都是从增.删.改.查开始来 ...

  8. WPF入门教程系列四——Dispatcher介绍

    一.Dispatcher介绍 微软在WPF引入了Dispatcher,那么这个Dispatcher的主要作用是什么呢? 不管是WinForm应用程序还是WPF应用程序,实际上都是一个进程,一个进程可以 ...

  9. WPF入门教程系列四

    WPF之Binding的使用(二) 一.  前言 初学WPF经常被Binding搞得苦不堪言,Binding的重用性就不做介绍了,在WPF应用程序开发中Binding是一个非常重要的部分.WPF也是近 ...

随机推荐

  1. win32 console application 如何修改图标?

    win32 console application ,不要看这名字高端大气上档次,让你摸不着头脑,其实他就是我们最先学习c语言那种黑色窗口的东西......话说他怎么修改图标呢?第一种方法是:右键-〉 ...

  2. python之6-5偏函数

    functools.partial 偏函数的作用是简化操作,简化什么操作呢?就是当我们有一个已知函数A,且这个函数包含有某个或多个参数A1,通过固定这个参数A1,我们可以自己编写一个新函数B,来减少代 ...

  3. setf

    independent flags boolalpha read/write bool elements as alphabetic strings (true and false). showbas ...

  4. 新鲜出炉的awk代码

    echo "" | igawk -f main.awk # 需求:按照多种充值方式的多种金额类型进行累加统计 # 充值方式:移动卡 ,,,100元,联通卡20,,, 电信卡 ,,, ...

  5. 自制单片机之十三……时钟IC_DS1302

    在网上看了很久,发现初学者最有兴趣的就是DS1302时钟电路,也很自然,它是个做出来就让你觉得最实用的电路了,但实际上制做上并不简单,首先你要让你的显示部分(不管是数码管还是LCD)调试通过.然后把D ...

  6. 用keil直接生成BIN文件

    1.下载hex2bin到keil的任意目录,下载地址:http://www.keil.com/download/docs/7.asp 或者 http://www.hex2bin.com/files/h ...

  7. C++中new和delete的背后( call edx 调用虚表内的第二个函数(析构函数))

    关于 C++中new背后的行为, 以前已经写过一篇了 理解C++中new背后的行为, 但是里面也只是泛泛而谈,没有真凭实据, 下面我们从汇编的角度看C++编译器究竟在背后干了什么?   我们的代码很简 ...

  8. @@ROWCOUNT 含义

    返回受上一语句影响的行数. 如果行数大于 20 亿,请使用 ROWCOUNT_BIG. Transact-SQL 语句可以通过下列方式设置 @@ROWCOUNT 的值: 将 @@ROWCOUNT 设置 ...

  9. 【转】深圳FAE,想拿高薪还缺什么?

    原文网址:http://www.eefocus.com/KTHR_IC/blog/11-05/222793_e04c8.html KT老胡您好! 我07年本科毕业在一家医疗民营企业从事了3年多的嵌入式 ...

  10. struct2(二) struct2的hello world 程序

    在struct2 的web应用程序中,当你点击一个超链接或者提交一个HTML页面的时候,并不是直接的转向一个另一个的页面,而是转到你提供的一个Java 类.这个过程被称为一个action,一个acti ...