• WCF编程系列(四)配置文件


    .NET应用程序的配置文件

        前述示例中Host项目中的App.config以及Client项目中的App.config称为应用程序配置文件,通过该文件配置可控制程序的运行时行为,相对于在设计时通过程序来设定运行时行为,配置文件具有更高的灵活性:我们无需重新编译程序即可修改应用程序行为。编译器最终会将App.config编译成 [应用程序名称].exe.config 文件,并放在当前应用程序目录中。而对应Web应用程序(ASP.NET)其对应的配置文件为Web.config。

        .NET存在一个默认的全局配置文件Machine.config,通常位于相应.Net Framework运行库目录下的Config目录中,如:C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG。.NET应用程序启动时,会将应用程序下的App.config与Machine.config合并(App.config的配置会覆盖Machine.config配置)。

        .NET配置文件是一个标准的XML文件,根节点为<configuration>,在该节点下包含多个.NET的配置节点

    隐藏行号 复制代码 C#
    1. <?xml version="1.0" encoding="utf-8"?>
    2. <configuration>
    3.   ......
    4. </configuration>

    WCF配置文件结构

        WCF配置位于应用程序配置文件中的<system.serviceModel>节点下,其主要内容如下:

    隐藏行号 复制代码 C#
    1. <system.ServiceModel>
    2.   
    3.   <services>
    4.     <service>
    5.       <endpoint/>
    6.     </service>
    7.   </services>
    8.  
    9.   <bindings>
    10.     <binding>
    11.     </binding>
    12.   </bindings>
    13.  
    14.   <behaviors>
    15.     <behavior>
    16.     </behavior>
    17.   </behaviors>
    18.   <client>
    19.     <endpoint/>
    20.   </client>
    21. </system.ServiceModel>

    <services>节点

        该节点下包含应用程序承载的所有服务规范,由多个<service>节点组成。

    <service>节点

        一个<service>定义一个服务,该节点包含两个属性:name,指定提供服务契约实现的类型,是一个完全限定名称(即包括命名空间和类型名称),如示例一中指定的Xfrog.Study.WCF.FirstService;behaviorConfiguration,指定服务的行为控制配置名称,该名称和<behaviors>下<behavior>节点的name属性对应,如示例一中的behaviorConfiguration。

    <endpoint>节点

        <service>节点下可包含多个<endpoint>节点,每个节点包含以下属性,用以指定终结点的地址、绑定及契约:

        address属性,一个URI用以指定服务的地址,它可以是相对地址也可以是绝对地址,如果指定的是相对地址,其基地址取<service><host><baseAddresses>下定义的地址,如示例一中的定义。

        binding属性,指定一个绑定,通常是WCF中预定义绑定,当然也可以指定一个自定义的绑定。

        contract属性,指定一个契约,通常为通过ServiceContract特性定义的接口或类型,同样是一个完全限定名称,如示例一中的Xfrog.Study.WCF.IFirstService。

        bindingConfiguration属性,如果需要修改绑定的默认行为,则需要在bindings节点下,预定义绑定对应的绑定配置节点(参见【WCF编程系列(三)】中的预定义绑定列表)下的<binding>节点来指定,该节点的name属性和此处bindingConfiguration属性对应,如示例一中Client项目中的绑定:

    隐藏行号 复制代码 C#
    1. <?xml version="1.0" encoding="utf-8"?>
    2. <configuration>
    3.   <system.serviceModel>
    4.     <bindings>
    5.       <basicHttpBinding> 
    6.         <binding name="BasicHttpBinding_IFirstService" ....>
    7.           ....
    8.         </binding>
    9.       </basicHttpBinding>
    10.     </bindings>
    11.     <client>
    12.       <endpoint  binding="basicHttpBinding"
    13.           bindingConfiguration="BasicHttpBinding_IFirstService" contract="IFirstService"
    14.           name="BasicHttpBinding_IFirstService" />
    15.     </client>
    16.   </system.serviceModel>
    17. </configuration>

        <endpoint>中bindingConfigration设置为BasicHttpBinding_IFirstService,对应于<bindings><basicHttpBinding><binding name="BasicHttpBinding_IFirstService"….>中的定义,而<basicHttpBinding>配置节点对应的是basicHttpBinding预定义绑定。

    <client>节点

        该节点用于客户端的配置,在该节点下指定客户端需调用的终结点定义。

    使用WCF配置编辑器

        前面示例中我们都是通过手动输入的配置内容,实际上Visual Studio 2008 为我们提供了一个WCF配置编辑器,在VS中选择工具菜单—>WCF服务配置编辑器可启动它,如果项目中已经存在App.config文件,则可直接在该文件上单击右键,选择编辑WCF配置来启动编辑器。

  • 相关阅读:
    spark RDD操作的底层实现原理
    Spark累加器(Accumulator)陷阱及解决办法
    spark collect获取所有元素
    spark submit 入门
    pyspark使用ipython
    top k
    快速排序
    用 Spark 为 Elasticsearch 导入搜索数据
    静态成员变量不占用类的内存空间
    重载函数的调用匹配规则
  • 原文地址:https://www.cnblogs.com/xfrog/p/1736028.html
Copyright © 2020-2023  润新知