zoukankan      html  css  js  c++  java
  • Web.config配置文件

    ASP.NET应用程序的配置信息都存放于Web.config配置文件中,Web.config配置文件是基于XML格式的文件类型,由于XML文件的可伸缩性,使得ASP.NET应用配置变得灵活、高效、容易实现。同时,ASP.NET不允许外部用户直接通过URL请求访问Web.config,以提高应用程序的安全性。

    1Web.config配置文件的优点

    Web.config配置文件使得ASP.NET应用程序的配置变得灵活、高效和容易实现,同时Web.config配置文件还为ASP.NET应用提供了可扩展的配置,使得应用程序能够自定义配置,不仅如此,Web.config配置文件还包括以下优点。

    配置设置易读性:由于Web.config配置文件是基于XML文件类型,所有的配置信息都存放在XML文本文件中,可以使用文本编辑器或者XML编辑器直接修改和设置相应配置节,相比之下,也可以使用记事本进行快速配置而无需担心文件类型。

    更新的即时性:在Web.config配置文件中某些配置节被更改后,无需重启Web应用程序就可以自动更新ASP.NET应用程序配置。但是在更改有些特定的配置节时,Web应用程序会自动保存设置并重启。

    本地服务器访问:在更改了Web.config配置文件后,ASP.NET应用程序可以自动探测到Web.config配置文件中的变化,然后创建一个新的应用程序实例。当浏览者访问ASP.NET应用时,会被重定向到新的应用程序。

    安全性:由于Web.config配置文件通常存储的是ASP.NET应用程序的配置,所以Web.config配置文件具有较高的安全性,一般的外部用户无法访问和下载Web.config配置文件。当外部用户尝试访问Web.config配置文件时,会导致访问错误。

    可扩展性:Web.config配置文件具有很强的扩展性,通过Web.config配置文件,开发人员能够自定义配置节,在应用程序中自行使用。

    保密性:开发人员可以对Web.config配置文件进行加密操作而不会影响到配置文件中的配置信息。虽然Web.config配置文件具有安全性,但是通过下载工具依旧可以进行文件下载,对Web.config配置文件进行加密,可以提高应用程序配置的安全性。

    使用Web.config配置文件进行应用程序配置,极大的加强了应用程序的扩展性和灵活性,对于配置文件的更改也能够立即的应用于ASP.NET应用程序中。

    2Web.config配置文件的结构

    Web.config配置文件是基于XML文件类型的文件,所以Web.config文件同样包含XML结构中的树形结构。在ASP.NET应用程序中,所有的配置信息都存储在Web.config文件中的“<configuration>”配置节中。在此配置节中,包括配置节处理应用程序声明,以及配置节设置两个部分,其中,对处理应用程序的声明存储在configSections配置节内,示例代码如下所示。

        <configSections>

          <sectionGroup

              name="system.web.extensions"

              type="System.Web.Configuration.SystemWebExtensionsSectionGroup,

              System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">

            <sectionGroup

              name="scripting"

              type="System.Web.Configuration.ScriptingSectionGroup,

              System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">

              <section

              name="scriptResourceHandler"

              type="System.Web.Configuration.ScriptingScriptResourceHandlerSection,

              System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"

              requirePermission="false" allowDefinition="MachineToApplication"/>

              <sectionGroup

              name="webServices"

              type="System.Web.Configuration.ScriptingWebServicesSectionGroup,

              System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">

              </sectionGroup>

            </sectionGroup>

          </sectionGroup>

        </configSections> 

    配置节设置区域中的每个配置节都有一个应用程序声明。节处理程序是用来实现ConfigurationSection接口的.NET Framework类。节处理程序生命中包括了配置设置接的名称,以及用来处理该配置节中的应用程序的类名。

    配置节设置区域位于配置节处理程序声明区域之后。对配置节的设置还包括子配置节的是配置,这些子配置节同父配置节一起描述一个应用程序的配置,通常情况下这些同父配置节由同一个配置节进行管理,示例代码如下所示。

          <pages>

            <controls>

              <add tagPrefix="asp" namespace="System.Web.UI"

              assembly="System.Web.Extensions,

              Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

              <add tagPrefix="asp" namespace="System.Web.UI.WebControls"

              assembly="System.Web.Extensions,

              Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

            </controls>

          </pages>

    虽然Web.config配置文件是基于XML文件格式的,但是在Web.config配置文件中并不能随意的自行添加配置节或者修改配置节的位置,例如pages配置节就不能存放在configSections配置节之中。在创建Web应用程序时,系统通常会自行创建一个Web.config配置文件在文件中,系统通常已经规定好了Web.config配置文件的结构。

    13.2.3  ASP.NET基本配置节

    Web.config配置文件中包括很多的配置节,这些配置节都用来规定ASP.NET应用程序的相应属性。

    1<configuration>:根配置节

    所有Web.config的根配置节都存储与<configuration>标记中,在它内部封装了其他的配置节,示例代码如下所示。

    <configuration>

              <syste.web>

              ……

    </configuration>

    2<configSections>:处理声明配置节

    该配置节主要用于自定义的配置节处理程序声明,该配置节由多个“<section>”配置节组成,示例代码如下所示。

        <configSections>

          <sectionGroup

          name="system.web.extensions"

          type="System.Web.Configuration.SystemWebExtensionsSectionGroup,

          System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">

            <sectionGroup name="scripting"

          type="System.Web.Configuration.ScriptingSectionGroup,

          System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">

              <section name="scriptResourceHandler"

          type="System.Web.Configuration.ScriptingScriptResourceHandlerSection,

          System.Web.Extensions, Version=3.5.0.0, Culture=neutral,

          PublicKeyToken=31BF3856AD364E35"

          requirePermission="false" allowDefinition="MachineToApplication"/>

            </sectionGroup>

          </sectionGroup>

        </configSections> 

    其中<section>配置节包括nametype两种属性,name属性指定配置数据配置节的名称,而type属性指定与name属性相关的配置处理程序类。

    3<appSettings>:用户自定义配置节

    <appSettings>”配置节为开发人员提供ASP.NET应用程序的扩展配置,通过使用“<appSettings>”配置节能够自定义配置文件,示例代码如下所示。

        <appSettings>

            <add key="Name" value="Guojing"/>                                                                            //增加自定义配置节

            <add key="E-mail" value="soundbbg@live.cn"/>

        </appSettings>

    上述代码添加了两个自定义配置节,这两个自定义配置节分别为NameE-mail,用于定义该Web应用程序的开发者的信息,以便在其他页面中使用该配置节。

    若需要在页面中使用该配置节,可以使用ConfigurationSettings.appSettings(“key的名称”)方法来获取自定义配置节中的配置值,示例代码如下所示。

            protected void Page_Load(object sender, EventArgs e)

            {

                TextBox1.Text = ConfigurationSettings.AppSettings["name"].ToString();       //获取自定义配置节

            }

    <appSettings>”配置节包括两个属性,分别为KeyValueKey属性指定自定义属性的关键字,以方便在应用程序中使用该配置节,而Value属性则定义该自定义属性的值。

    4<customErrors>:用户错误配置节

    该配置节能够指定当出现错误时,系统自动跳转到一个错误发生的页面,同时也能够为应用程序配置是否支持自定义错误。“<customErrors>”配置节包括两种属性,这两种属性分别为modedefaultRedirect。其中mode包括3种状态,这三种状态分别为OnOffRemoteOnlyOn表示启动自定义错误;Off表示不启动自定义错误;RemoteOnly表示给远程用户显示自定义错误。另外:defaultRedirect属性则配置了当应用程序发生错误时跳转的页面。

    <customErrors>”配置节还包括子配置节“<error>”,该标记用于特定状态的自定义错误页面,子标记“<error>”包括两个属性,分别为statusCoderedirect,其中statusCode用于捕捉发生错误的状态码,而redirect指定发生该错误后跳转的页面,该配置节配置代码如下所示。

        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">

            <error statusCode="403" redirect="NoAccess.htm" />

            <error statusCode="404" redirect="FileNotFound.htm" />

        </customErrors>

    上述代码则在Web.config文件中配置了相应的customErrors信息。当出现404错误时,系统会自行跳转到FileNotFound.htm页面以提示404错误,开发人员能够编写FileNotFound.htm页面进行用户提示。

    5<globalization>:全局编码配置节

    <globalization>”用于配置应用程序的编码类型,ASP.NET应用程序将使用该编码类型分析ASPX等页面,常用的编码类型包括:

    UFT-8Unicode UTF-8字节编码技术,ASP.NET应用程序默认编码。

    UTF-16Unicode UTF-16字节编码技术。

    ASCII:标准的ASCII编码规范。

    Gb2312:中文字符Gb2312编码规范。

    在配置“<globalization>”配置节时,其编码类型可以参考上述编码类型,如果不指定编码类型,则ASP.NET应用程序默认编码为UTF-8,示例代码如下所示。

            <globalization fileEncoding="UTF-8" requestEncoding="UTF-8" responseEncoding="UTF-8"/>

    6<sessionState>Session状态配置节

    <sessionState>配置节用于完成ASP.NET应用程序中会话状态的设置,<sessionState>配置节包括以下5种属性:

    mode:指定会话状态的存储位置,一共有OffInprocStateServerSqlServer集中设置,Off表示禁用该设置,Inproc表示在本地保存会话状态,StateServer表示在服务器上保存会话状态,SqlServer表示在SQL Server保存会话设置。

    stateConnectionString:用来指定远程存储会话状态的服务器名和端口号。

    sqlConnectionString:用来连接SQL Server的连接字符串,当在mode属性中设置SqlServer时,则需要使用到该属性。

    Cookieless:指定是否使用客户端cookie保存会话状态。

    Timeout:指定在用户无操作时超时的时间,默认情况为20分钟。

    <sessionState>配置节配置示例代码如下所示。

            <sessionState mode="InProc" timeout="25" cookieless="false"></sessionState>

    ASP.NET不仅包括这些基本的配置节,还包括其他高级的配置节,高级的配置节通常用于指定界面布局样式,如母版页、默认皮肤、以及伪静态等高级功能。

    作者:wpf之家
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    LeetCode 32. 最长有效括号(Longest Valid Parentheses)
    LeetCode 141. 环形链表(Linked List Cycle)
    LeetCode 160. 相交链表(Intersection of Two Linked Lists)
    LeetCode 112. 路径总和(Path Sum)
    LeetCode 124. 二叉树中的最大路径和(Binary Tree Maximum Path Sum)
    LightGBM新特性总结
    sql service 事务与锁
    C#泛型实例详解
    C# 中的委托和事件(详解)
    C# DateTime日期格式化
  • 原文地址:https://www.cnblogs.com/wpf123/p/2052938.html
Copyright © 2011-2022 走看看