Asp.Net的Web.config和Global.asax

Asp.Net的Web.config配置的详细说明

1.  ASP.NET 2.0应用程序的标准文件

        ASP.NET 2.0 使用两个文件保存应用到 整个站点的配置信息和代码。这两个文件分别是 : Web.config  和  Global.asax    文件。 web.config保存 值 ;Global.asax保存代码.
  1. 1、 Web.config  包含站点的配置设置;如标准的自定义错误页面。
  2. 2、Global.asax    包含  由整个站点上任何页面所引起的事件的 处理代码。  如:每当用户第一次访问站点(一次会话的开始) 时运行的代码。
      ASP.NET 配置是一个功能强大并且容易操作的基于XML 的配置系统,该配置系统支持以下两种配置文件:
  1. 1、应用程序配置 -------------web.config
                          一个应用程序可以有多个,可在根目录和子目录
  1. 2、服务器配置  ----------------machine.config
                         该文件记录ASPNET Web应用程序使用的默认配置。

1.1 Web.config保存整个站点设置

                 
 
           配置文件格式   ASP.NET 配置文件是基于 XML 的纯文本文件,它可以包含标准的 XML 文档元素(包括格式正确的标记、注释、文本、cdata 等等)。该文件的编码格式可以为 ANSI、UTF-8 或 Unicode;系统自动检测编码。 (统一命名为 web.config),可出现在 ASP.NET Web 应用程序服务器上的任何目录中。每个 web.config 文件将配置设置应用到它所在的目录和它下面的所有虚拟子目录。子目录中的设置可随意重写或修改在父目录中指定的设置。 它决定了所在目录及其子目录的配置信息,并且其子目录下的配置信息要覆盖父目录中的配置信息。
         配置文件位置 
      1、 整个机器的 根配置文件
WinNT\ Microsoft.NET\Framework\<version>\config\machine.config,
提供整台计算机的缺省配置设置。     
 默认情况下 ,ASP.NET 配置 IIS 阻止 浏览器对目录下web.config 文件进行直接的访问,以确保这些文件的值不能成为公共的(试图访问这些文件将导致 ASP.NET 返回 403 : Access Forbidden)。
       2 、 运行时,ASP.NET 会根据远程的每个 URL 请求  分层计算唯一的设置集合,(把访问路径下的所有 web.config 文件 叠加,产生一个唯一的配置集合;这些设置只计算一次,然后在后面的请求间被缓存起来;ASP.NET 自动监视文件更改,如果有任何配置文件发生更改时则使缓存无效【重新计算?】)。
         如对URL [url]http://xxx.xxx.xxx/default.aspx[/url] 的访问 ASPNET 会根据如下顺序来决定最终的配置;
1 . 1、 ~\Microsoft.NET\Framework\v.x.xx\CONFIG\web.config   [缺省配置文件]
2 . 2、~\WebApp\web.config                                                         [应用程序的配置]
3.  3、 ~\WebApp\SubDir\web.config                                          [ 自己的个性配置]
4.   4、  ……
 
          【 注意】:如果 web.config 文件位于某个站点(如“Inetpub\wwwroot”)的根目录下,其配置设置将应用于该站点的所有应用程序。注意,给定目录或应用程序根中 web.config 文件的存在是完全可选的。如果 web.config 文件不存在,该目录的所有配置设置将自动从父目录继承。
<!--
  1. 1、Base configuration settings for   machine.
    1. C:\WinNT\Microsoft.NET\Framework\v.1.00\config\machine.config
  2. 2、Overridden by the configuration settings for the site (or the root application).
    1. C:\inetpub\wwwroot\web.config
  3. 3、Overridden by application configuration settings.
    1. D:\MyApplication\web.config
  4. 4、Overridden by subdirectory configuration settings.
    1. D:\MyApplication\MyDir\web.config
-->
    
 
   
<configuration> 标记通常包含三种不同类型的元素,1) 配置节处理程序声明,2) 配置节组,3) 配置节设置。
  • 配置节处理程序――ASP.NET 配置结构在 web.config 文件中的文件格式或支持的设置方面不进行任何假设。相反,它将处理 web.config 数据的任务委托给配置节处理程序,即实现 IConfigurationSectionHandler 接口的 .NET 框架类。单个 IConfigurationSectionHandler 声明只需要出现一次,通常是在 machine.config 文件中。子目录中的 web.config 文件自动继承此声明。配置节处理程序通过使用嵌套在 <configSections> 标记中的节标记指令在 web.config 文件中声明。节标记可进一步由节组标记限定,将它们组织为逻辑组(参见下文)。每个节标记标识一个表示特定配置数据节的标记名和一个处理该节的关联 IConfigurationSectionHandler 类。
  • 配置节组――ASP.NET 配置允许出于组织目的对节进行分层分组。<sectionGroup> 标记可显示在 <configSections> 标记的内部或其他 <sectionGroup> 标记的内部。例如,ASP.NET 节处理程序全都显示在 <system.web> 节组中。
  • 配置节――ASP.NET 配置设置在配置标记节中表示,同时嵌套在 <configuration> 标记(和可选的节组标记)中。对于每个配置节,必须在 config 层次结构中定义适当的节处理程序。例如,在下面的示例中,标记 <httpModules> 是定义 HTTP 模块配置数据的配置节。System.Configuration.HttpModulesConfigurationHandler 类负责在运行时解释 <httpModules> 标记中包含的内容。注意,节处理程序定义和节必须具有相同的节组限定符(此处为 <system.web>)。还应注意,标记名区分大小写,必须按所显示的原样键入。ASP.NET 的各种属性和设置也区分大小写,并且配置运行时不检查大小写是否不匹配。
<configuration>
web.config 节点主要保存三个方面的信息:
          
  1. 1、在开发和部署环境下 应用程序功能可用性的 设置;
  2. 2、保存读取和写入数据库时使用的 连接字符串;
  3. 3、保存所有其他信息的 system.web 节(还有其他节)等  设置
system.web设置再分几个子类,包括一下内容
    1. 1、使页面指向其他 执行代码的 页面的 http模块;
    2. 2、应该在编译时开启的调试例程;
    3. 3、验证技术;
    4. 4、Role Manager设置   (开/关);
    5. 5、匿名识别设置  (允许/拒绝);
    6. 6、错误处理设置;
    7. 7、用于导航和菜单的 web.sitemap 文件数据;
    8. 8、用于识别用户的配置数据;
    9. 9、简单邮件传送协议 的电子邮件配置 (SMTP);
    10. 10、识别大对象中 对象位置 的命名空间 的定义
          web.config 文件的修改: (三种方法)
  1. 1、直接在VS IDE中手动修改;
  2. 2、通过ASP.NET MMC管理单元【集成于IIS MMC中】,可视化配置与管理
  3. 2、通过 [ ASP.NET配置 ] 工具来完成;
         web.config文件的结构:
  1. 1、 具有开始和结束标记,
  2. 2、每个 都具有属性,有时还具有子节点;
  3. 3、<!-- -->注释;  这些注释对每节设置提供建议.
  4. 4、所有值的列表位于 ~\config\web.config.comments 的文本文件中;
  5. ……
     
 

1.2  Global.asax 保存用于整个站点的代码 (  存代码)

Global.asax中的代码在三种情况之一下执行:
  1. 1、整个应用程序启动或停止时;
  2. 2、当每个用户开始或停止使用站点时;
  3. 3、对可能发生在每个页面上的 特殊事件进行响应时;
           [如:用户登录或出现错误]
        这些情况中的每一个 都称为 事件。当每一个事件发生时,ASP.NET让 Global.asax知道事件的发生,代码会执行以响应事件。
 

本文出自 “风云向” 博客,谢绝转载!

你可能感兴趣的:(职场,Web.Config,休闲,global.asax)