zoukankan      html  css  js  c++  java
  • (理论篇)web.config配置一览

    一个入行几年的老鸟,一个看了几年的配置文件,你说他们是该熟悉呢,还是不熟悉呢?

    答案是不太熟悉,所以此处记下以为记忆深刻,将阐述以下几个问题:

    1 何为web.config文件?

    2 如何读写web.config文件?

    3 web.config的常见配置?

    先来看问题1,何为web.config文件?

    web.config是一个格式完整的xml文件,是从machine.config文件延伸出来的,为何说从machine.config延伸的呢?理由有2:

    其一:machine.config下的配置对整个服务器上的net网站起作用,而web.config对它所在目录下的所有文件起作用,如在根目录,则对

    当前网站起作用,可以很轻易的看出,它们之间有层级继承关系;

    其二:很多machine.config中的配置被挪到了web.config中进行配置,为何呢?一是为了减轻网站加载时的压力,因为很多配置是不需要的,而是

    为了方便定制个性化的加载项。

    从以上2点我们可以得出一个结论,web.config是从machine.config延伸出的一个xml格式的配置文件,它对它所处的目录下对所有文件起作用。

    2 如何读写web.config文件?

    既然是一个标准的xml文件,就应该有办法对他进行读写操作,net也提供了类似的方法

    当然并不是谁都可以对web.config文件进行读写操作的,必须要有一定的权限才行的。
    其实在web.config中的很多的配置节点都是与一个类相对应的,我们可以通过相应的类来,利用其强类型的API来对相应的配置进行访问,而不用把web.config 当做一个XML来读取。
     我们可以用两种方式来对配置文件进行访问,首先,可以用强类型的API来访问,这就要用要ConfigurationManager类。如下:

    SessionStateSection sts (SessionStateSection)ConfigurationManager.GetSection("system.web/sessionState");
    大家应该可以看到,其实我们现在就是对sessionState节点进行访问。
          在ConfigurationManager中有一个静态的方法GetSection,传入我们要访问节点的XPath,如上面的system.web/sessionState,然后把结果转换为对应的强类型,我们就可以访问节点的属性等信息。在System.Web.Configuration空间中,我们可以找到对应节点的强类型。


          有一点要注意的就是:ConfigurationManager仅仅只能处理当前网站中的web.config,也就是说它不能处理别的网站的中的配置文件。如我们现在的网站是DemoA,那么上面的实例代码访问的就是DemoA中的web.config,不能访问DemoB中的web.config。


          但是我们还可以用第二种方法来做,就是用WebConfigurationManager。代码如下:

    MembershipSection ms = MembershipSection)WebConfigurationManager.GetSection("system.web/membership""~/web.config");

    上面的代码中,注意GetSection的第二个参数就申明了web.config的路径,上面的代码访问的是当前网站中的配置文件,我们还访问其他网站中的配置文件。

          上面讲述了怎么来读取一个配置文件,下面就来看看怎么对配置文件进行写的操作。
          当对配置文件进行写的操作的时候,就要求我们确确实实的打开配置文件,而不仅仅只是返回一个配置文件的引用。也就是说,我们不能用ConfigurationManager来进行写的操作,因为它只是返回一个System.Configuration.Configuration的引用。所以我们应该用WebConfigurationManager来对配置文件进行写的操作。
          当我们用编程的方式打开配置文件,设置了一些属性后,就可以用Configuration.Save()来保存修改。如:

    Configuration config = WebConfigurationManager.OpenWebConfiguration("~");
    MembershipSection ms 
    = (MembershipSection)config.GetSection("system.web/membership");
    ms.DefaultProvider 
    = "someOtherProvider";
    config.Save();

     注意:OpenWebConfiguration方法有很多的重载,"~"表示我们打开的是当前网站的配置文件。还有一点很中的就是,配置文件系统没有对多线程进行同步和锁。所以载我们写一个配置文件的时候最好注意这点。

    问题1.2的详情见链接 http://www.cnblogs.com/yanyangtian/archive/2009/03/27/1422958.html

    (3)常用的web.config配置

    详情见 http://www.cnblogs.com/gaoweipeng/archive/2009/05/17/1458762.html

  • 相关阅读:
    Knockout.Js官网学习(模版绑定)
    Knockout.Js官网学习Demo(使用VS2012或者VS2013均可打开)
    Knockout.Js官网学习(Mapping高级用法一)
    Knockout.Js官网学习(Mapping高级用法二)
    Knockout.Js官网学习(Mapping插件)
    Knockout.Js官网学习(加载或保存JSON数据)
    Knockout.Js官网学习(创建自定义绑定)
    Knockout.Js官网学习(selectedOptions绑定、uniqueName 绑定)
    Knockout.Js官网学习(options绑定)
    Knockout.Js官网学习(checked 绑定)
  • 原文地址:https://www.cnblogs.com/jangwewe/p/2970574.html
Copyright © 2011-2022 走看看