<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <!-- <system.ServiceModel> section -->
    <system.ServiceModel>
        <!-- services 元素包含应用中驻留的所有service的配置要求 -->
        <services>
            <!-- 每个服务的配置
             属性说明: 
             name - 指定这个service配置是针对的那个服务,为一个实现了某些Contract的服务类的完全限定名
                   (名称空间.类型名),ServiceHost载入一个服务后,会到配置文件中的<services>下找有没有
                   name属性跟服务匹配的<service>的配置 
             behaviorConfiguration - 指定在<serviceBehaviors>下的一个<behavior>的name,这个特定<behavior>
                                     给这个service制定了一些行为,比如服务是否允许身份模拟-->
            <service name="名称空间.类型名" behaviorConfiguration="behavior名">
                <!-- 每个服务可以有多个Endpoint,下面<endpoint>元素对每个Endpoint分别进行配置
                 属性说明: 
                 address - 指定这个Endpoint对外的URI,这个URI可以是个绝对地址,也可以是个相对于baseAddress的
                           相对地址。如果此属性为空,则这个Endpoint的地址就是baseAddress
                 binding - 指定这个Endpoint使用的binding,这个banding可以是系统预定义的9个binding之一,
                           比如是basicHttpBinding,也可以是自定义的customBinding。binding决定了通讯的类型、
                           安全、如何编码、是否基于session、是否基于事务等等
                 contract - 指定这个Endpoint对应的Contract的全限定名(名称空间.类型名),这个Contract应该被
                            service元素的name指定的那个service实现 
                 bindingConfiguration - 指定一个binding的配置名称,跟<bindings>下面同类<binding>的name匹配
                 name - Endpoint的名称,可选属性,每个Contract都可以有多个Endpoint,但是每个Contract对应的
                        多个Endpoint名必须是唯一的-->
                <endpoint address="URI" binding="basicHttpBinding" contract="Contract全限定名" bindingConfiguration="binding名" name="">
                    <!-- 用户定义的xml元素集合,一般用作SOAP的header内容-->
                    <headers>
                        <!-- 任何xml内容 -->
                    </headers>
                    <identity>
                        <!-- <identity>下的元素都是可选的-->
                        <userPrincipalName></userPrincipalName>
                        <servicePrincipalName></servicePrincipalName>
                        <dns></dns>
                        <rsa></rsa>
                        <certificate encodedValue=""></certificate>
                        <!-- <certificateReference>的属性都是可选的
                         属性说明:
                         storeName - 证书的存储区,可能值为:AddressBook,AuthRoot,CertificateAuthority
                                     Disallowed,My,Root,TrustedPeople,TrustedPublisher
                         storeLocation - 证书存储位置,可能值为:CurrentUser,LocalMachine-->
                        <certificateReference storeName="" storeLocation="">
                        </certificateReference>
                    </identity>
                </endpoint>
                <host>
                    <baseAddresses>
                        <!-- 在此可以定义每种传输协议的baseAddress,用于跟使用同样传输协议Endpoint定义的相对地
                    址组成完整的地址,但是每种传输协议只能定义一个baseAddress。HTTP的baseAddress同时是service
                    对外发布元数据的URL-->
                        <add baseAddress="http://address" />
                    </baseAddresses>
                    <timeouts></timeouts>
                </host>
            </service>
        </services>

        <bindings>
            <!-- 指定一个或多个系统预定义的binding,比如<basicHttpBinding>,当然也可以指定自定义的customBinding,
             然后在某个指定的binding下建立一个或多个配置,以便被Endpoint来使用这些配置 -->
            <basicHttpBinding>
                <!-- 某一类的binding的下面可能有多个配置,binding元素的name属性标识某个binding-->
                <binding name="binding名">
                </binding>
            </basicHttpBinding>
        </bindings>
        <!-- 定义service和Endpiont行为-->
        <behaviors>
            <!-- 定义service的行为-->
            <serviceBehaviors>
                <!-- 一个或多个系统提供的或定制的behavior元素
                 属性说明:
                 name - 一个behavior唯一标识,<service>元素的behaviorConfiguration属性指向这个name-->
                <behavior name="">
                    <!-- 指定service元数据发布和相关信息
                     属性说明:
                     httpGetEnabled - bool类型的值,表示是否允许通过HTTP的get方法获取sevice的WSDL元数据
                     httpGetUrl - 如果httpGetEnabled为true,这个属性指示使用哪个URL地址发布服务的WSDL,
                                  如果这个属性没有设置,则使用服务的HTTP类型的baseAddress后面加上?WSDL-->
                    <serviceMetadata httpGetEnabled="true" httpGetUrl="http://URI:port/address" />
                </behavior>
            </serviceBehaviors>
            <!-- 定义Endpiont的行为-->
            <endpointBehaviors>
            </endpointBehaviors>
        </behaviors>
        <!-- 包含客户端跟服务端连接使用到的Endpoint的配置 -->
        <client>
            <!-- 每个客户端Endpoint设置
             属性说明:
             address - 对应到服务端这个Endpoint的address
             binding - 指定这个Endpoint使用的binding,这个banding可以是系统预定义的9个binding之一,
                       比如是basicHttpBinding
             contract - 指定这个Endpoint对应的Contract的全限定名(名称空间.类型名)
             name - Endpoint的配置名,客户端代理类的构造方法中的endpointConfigurationName对应到这个name
             bindingConfiguration - 指定客户端binding的具体设置,指向<bindings>元素下同类型binding的name -->
            <endpoint address="URI"
                binding="basicHttpBinding" bindingConfiguration="binding名"
                contract="Contract全限定名" name="endpoint配置名" />
        </client>
    </system.ServiceModel>
</configuration>

WCF配置文件详解(一)的更多相关文章

  1. WCF配置文件详解

    今天来看看WCF的配置方法. 上图整理了服务配置过程中所用到的基本的元素,大致的步骤主要是首先要在调用服务的程序集中添加服务的一个引用,然后添加一个service并指定服务的名称.终结点,如果添加了b ...

  2. WCF配置文件详解 【转】

    ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 ...

  3. WebConfig配置文件详解

    今天看到博客园一位朋友整理的一个WebConfig配置文件详解,觉得不错,转载一下: <?xml version="1.0"?> <!--注意: 除了手动编辑此文 ...

  4. Asp.net中web.config配置文件详解(一)

    本文摘自Asp.net中web.config配置文件详解 web.config是一个XML文件,用来储存Asp.NET Web应用程序的配置信息,包括数据库连接字符.身份安全验证等,可以出现在Asp. ...

  5. quartz配置文件详解

    quartz配置文件详解(转载)     quartz学习总结: 一.关于job:    用Quartz的行话讲,作业是一个执行任务的简单Java类.任务可以是任何Java代码.只需你实现org.qu ...

  6. tomcat配置文件详解

    Tomcat系列之服务器的安装与配置以及各组件详解   tomcat 配置文件详解

  7. ubuntu nginx 安装以及配置文件详解

    1.到nginx官网下载源码包.最好下载稳定版本,nginx官网http://www.nginx.org/ 2.安装nginx依赖包运行命令: sudo apt-get install libssl- ...

  8. Spring配置文件详解 – applicationContext.xml文件路径

    Spring配置文件详解 – applicationContext.xml文件路径 Java编程                 spring的配置文件applicationContext.xml的默 ...

  9. spring配置文件详解--真的蛮详细

    spring配置文件详解--真的蛮详细   转自: http://book.51cto.com/art/201004/193743.htm 此处详细的为我们讲解了spring2.5的实现原理,感觉非常 ...

随机推荐

  1. Linux下vsftp服务器—上传、下载

    一.  FTP 说明 Linux下常用的FTP Server是vsftp(Very Security File Transfer Protocol),及profpt(Professtional ftp ...

  2. iOS 开发一年总结

    收获很多 1. 一个人包办从构思, 设计, 实现, 推广的全过程, 对自己的能力, 特别是能力范围有很大的提升. 以前在公司上班仅仅局限在实现的局域内, 现在在做自己的产品时, 在设计时的取舍, 对工 ...

  3. Get the item a SharePoint workflow task is associated with

    This is handy. SharePoint helpfully populates the meta data with the GUID of the list and the ID of  ...

  4. Linux:crontab命令学习

    一.crond简介 crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动cro ...

  5. DB天气app冲刺二阶段第一天

    原来找人也是个力气活...好费劲呀..今天的进度有点慢,,确切的说是没有什么进度 因为不会弄了..加上今天一个劲的找同学帮忙写评论.心思没定下来 根本没思路了..明天按照今天的计划继续冲刺..

  6. shell复习笔记----入门知识

    Unix 简史 UNIX 最初是由贝尔实验室(Bell Telephone Laborataries)的计算机科学研究中心开发的,第一版诞生于1970年--也就是在贝尔实验室退出Multics项目不久 ...

  7. 带括号的四则混合运算的算符优先算法-----java实现

    1:主方法 package com.baidu; import java.text.NumberFormat;import java.util.ArrayList;import java.util.S ...

  8. use sql trigger call java function

    Use UDF sys_exec to do this. You can use this link to use sys_exec function. It says, sys_exec sys_e ...

  9. highcharts 根据表格转化为不同的图表

    <!doctype html> <html lang="zh"> <head> <meta http-equiv="Conten ...

  10. $.cookie 使用不了的问题定位过程

    最近在项目中需要使用到jquery的cookie,按理说在html头中引入jquery-1.7.1.min.js和jquery.cookie.js,然后在js中就可以使用cookie函数了.像这样使用 ...