• Web.Config文件中使用configSource


    我们都知道,在asp.net中修改了配置文件web.config后,会导致应用程序重启,所有会话(session)丢失。然而,应用程序的配置信息放在配置文件里是最佳选择,在后台修改了配置后导致所有会话丢失是非常不爽的事情,这个时候可将配置文件中经常需要改变的参数配置节放到外面来,例如appSetting节。

    1.来个最简单的小例子

    [javascript] view plaincopyprint?

    1. <?xml version="1.0"?> 
    2. <configuration> 
    3.   <appSettings> 
    4.     <add key="test" value="aehyok"/> 
    5.   </appSettings> 
    6. </configuration> 

    然后在代码中进行调用,我在VS2010中建的是控制台程序,当然还需要添加引用System.Configuration;

    namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string str = ConfigurationManager.AppSettings["test"].ToString(); Console.WriteLine(str); Console.ReadLine(); } } }

    2.接下来看看优化后的配置文件结构,先来看看原来的配置文件的修改

    <?xml version="1.0"?> <configuration> <appSettings configSource="configMy.config" /> </configuration>

    然后在项目中添加一个Config文件夹,再在其中添加一个配置文件My.config
    其中结构如下

    <?xml version="1.0" encoding="utf-8" ?> <appSettings> <add key="test" value="aehyok"/> </appSettings>

    这样子照样可以进行读取配置文件。

    现在可以在一个单独文件包括所有支持 configSource 属性的配置元素的配置设置。但是,当使用 configSource 属性时,由于没有元素设置的合并,因此您必须将整个节移动到单独文件。使用 configSource 属性时,对 Web.config 文件有一次写入操作。这会导致应用程序重新启动,但是随后对该节的更新会直接写入单独文件,而不会导致后面的应用程序重新启动。

    只能包含一次configSource;

    在网站运行时,如果修改 Web.Config 文件会引起站点的重启,而修改 My.Config 文件则不会,同时也提高了配置文件的可读性

    注意,configSouce中的文件路径只能为相对物理路径,也就是只能为反斜杠(),不能用斜杠(/)。

  • 相关阅读:
    【从零开始】【Java】【3】改造成多模块项目
    atomic nonatomic区别
    UIBezierPath
    全局块、栈块、堆块
    动态修改可变数组元素
    layoutSubviews
    约束Constraints
    Objective-C实现一个简单的栈
    NSString 使用 copy、strong
    ARC中__weak;__strong;__unsafe_unretained;修饰词
  • 原文地址:https://www.cnblogs.com/suizhikuo/p/3730918.html
Copyright © 2020-2023  润新知