zoukankan      html  css  js  c++  java
  • web.config配置详细说明

    (一).Web.Config是以XML文件规范存储,配置文件分为以下格式

        1.配置节处理程序声明
        特点: 位于配置文件的顶部,包含在<configSections>标志中。

        2.特定应用程序配置
        特点: 位于<appSetting>中。 可以定义应用程序的全局常量设置等信息.

        3.配置节设置
        特点: 位于<system.Web>节中,控制Asp.net运行时的行为.

        4.配置节组
        特点: 用<sectionGroup>标记,可以自定义分组,可以放到<configSections>内部或其它<sectionGroup>标记的内部.

        (二).配置节的每一节
        1.<configuration>节
        根元素,其它节都是在它的内部.
       
         2.<appSetting>节
        此节用于定义应用程序设置项。对一些不确定设置,还可以让用户根据自己实际情况自己设置
        用法:
         I.
            <appSettings>
               <add key="Conntction" value="server=192.168.85.66;userid=sa;password=;database=Info;"/>
            <appSettings>
            定义了一个连接字符串常量,并且在实际应用时可以修改连接字符串,不用修改程式代码.
        II.
            <appSettings>
              <add key="ErrPage" value="Error.aspx"/>
            <appSettings>
            定义了一个错误重定向页面.

        3.<compilation>节
        格式:
            <compilation defaultLanguage="c#" debug="true" />
         I.
            default language: 定义后台代码语言,可以选择C#和VB.net两种语言.
         II.
            debug : 为true时,启动aspx调试; 为false不启动aspx调试,因而可以提高应用程序运行时的性能。 一般程序员在开发时设置为true,交给客户时设置为false.

        4.<customErrors>节
        格式:
            <customErrors mode="RemoteOnly" defaultRedirect="error.aspx"
                <error statusCode="440" redirect="err440page.aspx"/>
                <error statusCode="500" redirect="err500Page.aspx"/>
            />
        I.
            mode : 具有On,Off,RemoteOnly 3种状态。On表示始终显示自定义的信息; Off表示始终显示详细的asp.net错误信息; RemoteOnly表示只对不在本地Web服务器上运行的用户显示自定义信息.
        II.
            defaultRedirect: 用于出现错误时重定向的URL地址. 是可选的
        III.
            statusCode: 指明错误状态码,表明一种特定的出错状态.
        IV.
            redirect:错误重定向的URL.

        5.<globalization>节
        格式:
            <globalization requestEncoding="utf-8" responseEncoding="utf-8" fileEncoding="utf-8" />
        I.
            requestEncoding: 它用来检查每一个发来请求的编码.
        II.
            responseEncoding: 用于检查发回的响应内容编码.
        III.
            fileEncoding: 用于检查aspx,asax等文件解析的默认编码.

        6.<sessionState>节
        格式:
            <sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="20" />
        I.
            mode: 分为off,Inproc,StateServer,SqlServer几种状态
        II.
            stateConnectionString :指定Asp.net应用程序存储远程会话状态的服务器名,默认为本机
        III.
            sqlConnectionString: 当用会话状态数据库时,在这里设置连接字符串
        IV.
            Cookieless: 设置为true时,表示不使用cookie会话状态来标识客户; 否则,相反.
        V.
            TimeOut: 用来定义会话状态存储的时间,超过期限,将自动终止会话.

        7.<authentication>节
        格式:
            <authentication mode="Forms">
              <forms name=".ASPXUSERDEMO" loginUrl="Login.aspx" protection="All" timeout="30"/>
              </authentication>
              <authorization>
              <deny users="?"/>
            </authorization>
        I.
            Windows: 使用IIS验证方式
        II.
            Forms: 使用基于窗体的验证方式
        III.
         Passport: 采用Passport cookie验证模式
        IV.
            None: 不采用任何验证方式

         里面内嵌Forms节点的属性涵义:
        I.
            Name: 指定完成身份验证的Http cookie的名称.
        II.
            LoginUrl: 如果未通过验证或超时后重定向的页面URL,一般为登录页面,让用户重新登录
        III.
            Protection: 指定 cookie数据的保护方式.

            可设置为: All None Encryption Validation四种保护方式
                a. All表示加密数据,并进行有效性验证两种方式
                b. None表示不保护Cookie.
                c. Encryption表示对Cookie内容进行加密
                d. validation表示对Cookie内容进行有效性验证
        IV.
            TimeOut: 指定Cookie的失效时间. 超时后要重新登录.

        从文件名就可以看出是做配置用的,比如配置自定义错误页面,debug,等等
        存放连接字符串是最基本的用法,
        高级一点可以配置httpmodule,httphandler...
        再高级一点可以写一个继承自IConfigurationSectionHandler,添加自定义的配置节...
        功能是很强大的
        ASP.NET提供了一个丰富而可行的配置系统,以帮助管理人员轻松快速的建立自己的WEB应用环境。    ASP.NET提供的是一个层次配置架构,可以帮助WEB应用、站点、机器分别配置自己的扩展配置数据。    ASP.NET的配置系统具有以下优点:
        ●ASP.NET允许配置内容可以和静态内容、动态页面和商业对象放置在同一应用的目录结构下。当管理人员需要安装新的ASP.NET应用时,只需要将应用目录拷贝到新的机器上即可。
        ●ASP.NET的配置内容以纯文本方式保存,可以以任意标准的文本编辑器、XML解析器和脚本语言解释、修改配置内容。
        ●ASP.NET 提供了扩展配置内容的架构,以支持第三方开发者配置自己的内容。
        ●ASP.NET配置文件的更修被系统自动监控,无须管理人员手工干预。


         4.2.2配置文件的规则
        ASP.NET的配置文件是基于XML格式的纯文本文件,存在于应用的各个目录下,统一命名为“config.web”。它决定了所在目录及其子目录的配置信息,并且子目录下的配置信息覆盖其父目录的配置。

        WINNT/Microsoft.NET/Framework/版本号/下的config.web为整个机器的根配置文件,它定义了整个环境下的缺省配置。

        缺省情况下,浏览器是不能够直接访问目录下的config.web文件。

        在运行状态下,ASP.NET会根据远程URL请求,把访问路径下的各个config.web配置文件叠加,产生一个唯一的配置集合。举例来说,一个对URL: http://localhost/webapp/owndir/test.aspx的访问,ASP.NET会根据以下顺序来决定最终的配置情况:
        1../Microsoft.NET/Framework/v.1.00/config.web (缺省配置文件)
        2../webapp/config.web (应用的配置)
        3../webapp/owndir/config.web (自己的配置)


        4.2.3配置文件的语法规则

       (1)标识
        配置内容被置于config.web文件中的标记<configuration>和</configuration>之间。
        格式:
            <configuration>
                配置内容…
            </configuration>

        (2)配置段句柄说明
        ASP.NET的配置文件架构并未指定任何文件格式或者是支持的配置属性。相反的,它提出了“配置段句柄申明”的概念来支持任意的用户定义配置段。
        格式:
            <configsections>
              <add name=欲定义配置段名 type=处理的句柄函数 />
            </configsections>

        (3)配置段
        具体定义配置的内容,供应用使用。

        以下例子定义了一个“httpmodules”配置段,设置了系统http相关的处理模块
    <configuration>
         <configsections>
           <add name="httpmodules" type="System.Web.Configuration.HttpModules ConfigurationHandler" />
         </configsections>

        <httpmodules>
           <add type="System.Web.SessionState.CookielessSessionModule" />
          <add type="System.Web.Caching.OutputCacheModule" />
          <add type="System.Web.SessionState.SessionStateModule" />
           <add type="System.Web.Security.WindowsAuthenticationModule" />
          <add type="System.Web.Security.CookieAuthenticationModule" />
          <add type="System.Web.Security.PassportAuthenticationModule" />
          <add type="System.Web.Security.CustomAuthenticationModule" />
          <add type="System.Web.Security.UrlAuthorizationModule" />
           <add type="System.Web.Security.FileAuthorizationModule" />
        </httpmodules>
    </configuration>


        4.2. 4   ASP.NET定义的标准配置段

    (1)httpmodule    段: 定义了应用的http请求的处理模块以及诸如安全、日志之类的应用方式
    (2)httphandlers 段: 负责映射URLs到IhttpHandler类
    (3)sessionstat    段: 负责配置http模块的会话状态
    (4)globalization   段: 配置应用的公用设置
    (5)compilation    段: 配置ASP.NET的编译环境
    (6)trace      段: 配置ASP.NET的跟踪服务
    (7)security         段: ASP.NET的安全配置
    (8)iisprocessmodel 段: 在IIS上配置ASP.NET的处理模式
    (9)browercaps   段: 配置浏览器的兼容部件


        4.2. 5    一个配置读出的例子

    (1)config.web配置文件

        <!--config.web 请放入FormCfg.aspx所在目录-->
          <configuration>
              <!--申明一个test配置段-->
              <configsections>
                  <add name="test" type="System.Web.Configuration.DictionarySectionHandler" />
              </configsections>

              <test>
                  <!--配置一个键key,其内容为just a configure test-->
                  <add key="key" value="just a configure test" />
              </test>
          </configuration>

    (2)读出其内容

        <!--文件名:Application/FormCfg.aspx-->
        <html>
        <head>
        <script language="VB" runat=server>
            sub page_load(s as object ,e as eventargs)
            '取出test配置段的key键的值
            Dim CfgSection As Hashtable = Context.GetConfig("test")
             Dim Msg As String = CStr(CfgSection("key"))

            lblMsg.text=Msg
            end sub
        </script>
        <title>配置信息的读取</title>
        </head>
        <body>
            <center>
                config.web中"test"配置段中key的内容为: <asp:label id=lblmsg runat=server />
            </center>
         </body>
        </html>

    (3)运行结果


        4.2. 6    Config.web配置实例
        <configuration>
            <!--定义用户应用的公用设置,如SQL的sql连接串等等-->
            <appsettings></appsettings>

            <!--设置浏览器的兼容性部件-->
            <browsercaps></browsercaps>

            <!--编译环境设置,非调试模式-->
            <compilation debugmode="false">

                <!--缺省编译语言为vb,以后可以不再在Page中定义脚本语言-->
                <compilers defaultlanguage="vb">

                <!--以MSVSA.dll编译.vb为后缀的VB文件-->
                <compiler language="VB" extension=".vb" type="MSVSA.dll#Microsoft.VB.Compiler"/></compilers>

                <assemblies>
                    <!--加入对System.Data的引用-->
                    <add assembly="System.Data" />

                    <!--去掉对System.Data的引用-->
                    <remove assembly="System.IO" />

                    <!--去掉config.web中包含或继承来的引用-->
                    <clear />
                </assemblies>
            </compilation>

            <!--设置应用全局环境-->
                <!--文件、请求、返回以gb2312编码,以保证浏览器正确显示中文-->
                <globalization fileencoding="gb2312" requestencoding="gb2312" responseencoding="gb2312"/>

                <!--定义用户出错的处理-->
                <!--出错缺省显示defaultredirect指定的页面,mode为on时,遵循customerrors配置段-->
                <!--mode为off时,忽略用户出错,mode为remoteonly时,本地才显示真正的出错原因-->
                <customerrors defaultredirect="AnErrorHasOccured.aspx?ErrNum=-1" mode="remote">

                    <!--当出错码为500时,显示redirect指定的页面-->
                    <error statuscode="500" redirect="AnErrorHasOccured.aspx?ErrNum=500"/>
                </customerrors>

                <!--指定目录webapp的访问权限-->
                <location path="webapp” >
                    <!--非授权用户不能进入webapp目录-->
                    <security>
                    <authorization>
                    <deny users="?" />
                    </authorization>
                    </security>
                 </location>

                <!--定义安全属性-->
                 <security>
                    <authorization>

                    <!--角色为Adminstrators和所有的用户访问其指定的资源-->
                    <allow roles="Adminstrators"/>
                    <allow users="*" />
                     </authorization>
                 </security>
        </configuration>

  • 相关阅读:
    最大子数组问题(分治策略实现)
    Solving the Detached Many-to-Many Problem with the Entity Framework
    Working With Entity Framework Detached Objects
    Attaching detached POCO to EF DbContext
    如何获取qq空间最近访问人列表
    Health Monitoring in ASP.NET 2.0
    problem with displaying the markers on Google maps
    WebMatrix Database.Open… Close() and Dispose()
    Accessing and Updating Data in ASP.NET: Retrieving XML Data with XmlDataSource Control
    Create web setup project that has crystal reports and sql script run manually on client system
  • 原文地址:https://www.cnblogs.com/java20130723/p/3211562.html
Copyright © 2011-2022 走看看