zoukankan      html  css  js  c++  java
  • WCF编程系列(四)配置文件

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

     

    .NET应用程序的配置文件

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

        .NET存在一个默认的全局配置文件Machine.config,通常位于相应.Net Framework运行库目录下的Config目录中,如:C:WindowsMicrosoft.NETFramework v2.0.50727CONFIG。.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. 
      
    19.   <client>
    20.     <endpoint/>
    21.   </client>
    22. 
      
    23. </system.ServiceModel>
    24. 
      

    <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配置来启动编辑器。

  • 相关阅读:
    pipelinewise 学习二 创建一个简单的pipeline
    pipelinewise 学习一 docker方式安装
    Supercharging your ETL with Airflow and Singer
    ubuntu中使用 alien安装rpm包
    PipelineWise illustrates the power of Singer
    pipelinewise 基于singer 指南的的数据pipeline 工具
    关于singer elt 的几篇很不错的文章
    npkill 一个方便的npm 包清理工具
    kuma docker-compose 环境试用
    kuma 学习四 策略
  • 原文地址:https://www.cnblogs.com/dwuge/p/5318518.html
Copyright © 2011-2022 走看看