通过configSource提高web.config配置灵活性

很多时候我们会有这样的情况,开发环境和测试环境中的配置文件是不一样的,最明显的就是数据库连接串,这样,每次我们发布一个测试版本,都要手动去修改一下配置文件,是不是很麻烦的说。其实利用web.config中的configSource属性,可以很方便的为我们指定外部配置为该节点的内容。这样我们在web.config中只需要指定该配置的configSource的路径就行,而我们再发布的时候,就不需要再修改web.config文件了。

例如,将connectionStrings指定为外部文件:db.config

原配置:

<connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-WebApplication1-20140304225906;
Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-WebApplication1-20140304225906.mdf"
      providerName="System.Data.SqlClient" />
    <add name="ReportServerTempDBConnectionString" connectionString="Data Source=.;Initial Catalog=ReportServerTempDB;Integrated Security=True"
      providerName="System.Data.SqlClient" />
  </connectionStrings>

指定外部文件:

<connectionStrings configSource="db.config"/>

外部文件db.config:

<connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-WebApplication1-20140304225906;
Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-WebApplication1-20140304225906.mdf"
      providerName="System.Data.SqlClient" />
    <add name="ReportServerTempDBConnectionString" connectionString="Data Source=.;Initial Catalog=ReportServerTempDB;Integrated Security=True"
      providerName="System.Data.SqlClient" />
  </connectionStrings>

说几个注意点:

1.如果指定了configSource,就以外部文件为准,web.config中connectionStrings下面的节点配置就无效了,即使web.config中connectionStrings下面的连接串节点没有删除掉也是无效的。

2.外部文件的根节点必须与web.config中指定的节点相同(其实就是将该节点的配置移到外部文件中)

3.一个节点只能指定一个外部配置文件,不能将多个节点的外部文件指定为同一个,如不能将connectionStrings与appSettings的configSource指定为同一个文件。

4.外部文件与web.config处在同一目录。

原文地址:http://www.cnblogs.com/Gyoung/p/3590778.html

时间: 2024-11-16 21:36:01

通过configSource提高web.config配置灵活性的相关文章

IIS服务器与web.config配置优化指南

1.修改IIS最大工作进程数 a. 请考虑以下几点: 1.每一个工作进程都会消耗系统资源和CPU占用率:太多的工作进程会导致系统资源和CPU利用率的急剧消耗: 2.每一个工作进程都具有自己的状态数据,如果Web应用程序依赖于工作进程保存状态数据,那么可能不支持使用多个工作进程. 3. 成资源竞争,让多个工作进程运行同一个应用程序会造成资源竞争 b. 修改ISS最大工作进程数提高该应用程序池处理请求的性能 1.在IIS 6.0的Web园(Web Garden)中,指定用于某个应用程序池的工作进程的

asp.net-关于web.config配置,求大神,大仙,帮帮忙

问题描述 关于web.config配置,求大神,大仙,帮帮忙 <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/> 这是web.config的配置,运行出现在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的.如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误. 解决方案 解决方法

web.config配置节点大全详解

web.config配置节点大全详解 web.config 文件查找规则:        (1)如果在当前页面所在目录下存在web.config文件,查看是否存在所要查找的结 点名称,如果存在返回结果并停止查找.        (2)如果当前页面所在目录下不存在web.config文件或者web.config文件中不存在 该结点名,则查找它的上级目录,直到网站的根目录.        (3)如果网站根目录下不存在web.config文件或者web.config文件中不存在该节点 名则在%wind

web.config配置详细说明

(一).Web.Config是以XML文件规范存储,配置文件分为以下格式     1.配置节处理程序声明     特点: 位于配置文件的顶部,包含在<configSections>标志中.     2.特定应用程序配置     特点: 位于<appSetting>中. 可以定义应用程序的全局常量设置等信息.     3.配置节设置     特点: 位于<system.Web>节中,控制Asp.net运行时的行为.     4.配置节组     特点: 用<sect

IIS7伪静态web.config配置的方法和规则_实用技巧

以前在IIS6上配置伪静态还是挺复杂的,IIS7之后使用了插件机制,这让我们做伪静态变得简单多了. 一.服务器需要安装:URL Rewrite 扩展 下载地址:http://www.iis.net/download/URLRewrite 提示:虽然IIS7也可以使用以前在IIS6上那种老的方法来配置伪静态,但是我们不使用,因为那样的话就体现不出IIS7的优势了. 二.在 web.config 中配置伪静态规则 注意要点 1.参数用"()" 括起来 ,使用 {R:1}来获得参数 2.多个

ASP.NET web.config 配置节点详解_基础应用

web.config 文件查找规则: (1)如果在当前页面所在目录下存在web.config文件,查看是否存在所要查找的结点名称,如果存在返回结果并停止查找. (2)如果当前页面所在目录下不存在web.config文件或者web.config文件中不存在该结点名,则查找它的上级目录,直到网站的根目录. (3)如果网站根目录下不存在web.config文件或者web.config文件中不存在该节点名则在%windir%"Microsoft.NET"Framework"v2.0.

asp.net web.config配置节说明

web.config 文件查找规则:      (1)如果在当前页面所在目录下存在web.config文件,查看是否存在所要查找的结点名称,如果存在返回结果并停止查找.      (2)如果当前页面所在目录下不存在web.config文件或者web.config文件中不存在该结点名,则查找它的上级目录,直到网站的根目录.      (3)如果网站根目录下不存在web.config文件或者web.config文件中不存在该节点名则在%windir%"Microsoft.NET"Frame

web.config配置web应用程序中的数据库连接

web|程序|数据|数据库|数据库连接   web.config文件是标准的xml文件,我们可以使用它来为一台机器下的每一个web应用程序或某个应用程序或一个目录下的asp.net页面来进行设置,当然,它也可以为一个单独的web页面进行设置.  如:网站的主目录是\inetpub\wwwroot\,那么我们将web.config放置于其下,那么这个网站中的应用程序将被web.config中的设置所影响.  e.g.:  <?xml version="1.0" encoding=&

web.config配置连接字符串的方法_实用技巧

复制代码 代码如下: <configuration>   <appSettings>      <add key="connstr1" value="Data Source=.;Initial Catalog=DBName;Integrated Security=true"/>      <add key="connstr2" value=".........">   </