Web.config配置文件初识
Web配置文件web.config是Web 应用程序的数据设定文件,它是一份 XML 文件,内含 Web 应用程序相关设定的 XML 标记,可以用来简化 ASP.NET 应用程序的相关设定。
Web 配置文件web.config位于 Web 应用程序的任何目录中,子目录如果没有 web.config 文件,就是继承父目录 web.config 文件的相关设定;如果子目录有 web.config 文件,就会覆盖父目录 web.config 文件的相关设定。Web 配置文件是一份 XML 文件,在 XML 标记的属性就是设定值,标记名称和属性值格式是字符串,第 1 个开头字母是小写,之后每一字头是大写,例如<appSettings>。Web 配置文件的范例如下所示.
上述 Web 配置文件的根标记是<configuration>,其子标 记<appSettings>、<connectionStrings>和<system.web>是各设定区段。 在<system.web>下的设定区段属于ASP.NET相关设定。常用设定区段标记说明如表11-9所示。
表11-9 常用设定区段标记
设 定 区 段 |
说 明 |
<anonymousIdentification> |
控制 Web 应用程序的匿名用户,详细说明参阅第 16 章 |
<authentication> |
设定 ASP.NET 验证方式,参阅第 13 章 |
<authorization> |
设定 ASP.NET 用户授权,参阅第 13 章 |
<browserCaps> |
设定浏览程序兼容组件 HttpBrowserCapabilities |
<compilation> |
设定 ASP.NET 应用程序的编译方式 |
<customErrors> |
设定 ASP.NET 应用程序的自订错误处理 |
<globalization> |
关于 ASP.NET 应用程序的全球化设定,也就是本地化设定 |
<httpHandlers> |
设定 HTTP 处理是对应到 URL 请求的 IHttpHandler 类 |
<httpModules> |
创建、删除或清除 ASP.NET 应用程序的 HTTP 模块 |
<httpRuntime> |
ASP.NET 的 HTTP 执行期相关设定 |
<identity> |
设定 ASP.NET 应用程序的用户识别是使用服务器端用户账号的权限(impersonate 属性),或指定的用户账号(userName 和 password 属性) |
<machineKey> |
设定在使用窗体基础验证的 Cookie 数据时,用来加码和解码的金钥值 |
<membership> |
设定 ASP.NET 的 Membership 机制,参阅第 13 章 |
<pages> |
设定 ASP.NET 程序的相关设定,即 Page 指引命令的属性 |
<profile> |
设定个人化信息的 Porfile 对象,详细说明参阅第 14 章 |
<roles> |
设定 ASP.NET 的角色管理,详细说明参阅第 13 章 |
<sessionState> |
设定 ASP.NET 应用程序的 Session 状态 HttpModul |
设 定 区 段 |
说 明 |
<siteMap> |
设定 ASP.NET 网站导览系统,详细说明参阅第 12 章 |
<trace> |
ASP.NET 应用程序的除错功能,可以设定是否追踪应用程序的执行 |
<webParts> |
设定ASP.NET应用程序的网页组件,详细说明参阅第18章 |
<webServices> |
设定 ASP.NET 的 Web 服务,详细说明参阅第 18 章 |
11.7.2 appSetting与connectionStrings区段的参数和连接字符串
在 Web 配置文件的 <appSettings> 区段可以创建 ASP.NET 程序所需的参数,ASP.NET 2.0 新增 <connectionStrings> 区段,可以指定数据库连接字符串。
1. Web配置文件web.config的内容
在web.config文件<configuration>标记的子标记<appSettings> 和 <connectionStrings> 区段中,可以创建参数和数据库连接字符串,如下所示
上述 <appSettings> 标记的子标记是创建参数,每一个 <add> 标记可以创建一个参数,属性 key 是参数名称,value 是参数值。
在 <connectionStrings> 标记的 <add> 子标记也可以创建连接字符串,属性 name 是名称,connectionString 属性是连接字符串内容。
11.7.3 在sessionState区段设定Session状态
ASP.NET的Session状态管理拥有扩充性,可以在web.config文件的 <sessionState>区段设定Session状态管理,它属于<system.web>的子标记,如下所示。
上述<sessionState>标记的常用属性如表11-10所示。
表11-10 <sessionState> 标记的常用属性
属 性 |
说 明 |
mode |
Session 状态存储的位置可以是 off(不存储)、InProc(使用Cookie)、StateServer(使用状态服务器)和 SqlServer(存储在 SQL Server) |
cookieless |
是否使用 Cookie 存储 Session 状态。True 为不使用,False 为使用 |
timeout |
Session 时间的期限,以分钟计,默认值为20 分钟,其功能如同 Session 对象的 TimeOut 属性 |
11.7.4 globalization区段的编码设定
在<system.web>子标记的<globalization>区段是本地化相关设定,可以设定 ASP.NET 程序默认的文件编码、请求和响应的编码方式、日期时间格式和数字等本地化设定,如下所示
上述标记属性设定编码方式gb2312,culture是本地化设定值,zh-CN为中国大陆。相关属性说明如表11-11所示。
表11-11 globalization 区段的相关属性
属 性 |
说 明 |
requestEncoding |
指定 Request 请求的编码方式,默认为UTF-8 编码,大多数情况 requestEncoding 和 responseEncoding 属性的编码应该相同 |
responseEncoding |
指定 Response 响应的编码方式,默认为UTF-8 编码 |
fileEncoding |
指定扩展名 .aspx、.asmx 和 .asax 文件默认的编码方式 |
culture |
指定本地化的语系地区,不同的地区拥有不同的日期时间格式、数字等默认的本地化设定 |
上表culture属性值可以使用语系和地区代码,以中文语系来说的 culture 属性值如表11-12所示。
表11-12 culture 属性值可以使用语系和地区代码
culture 属性值 |
语系或地区 |
zh-HK |
香港 |
zh-MO |
澳门 |
zh-CN |
中国大陆 |
zh-SG |
新加坡 |
zh-TW |
台湾 |
zh-CHS |
中文简体 |
zh-CHT |
中文繁体 |
11.7.5 compilation区段的编译设定
在 <system.web> 子标记的 <compilation> 区段,可以设定 ASP.NET 程序默认的编译方式,如下所示
上述标记属性设定默认程序语言和是否打开除错模式。相关属性说明如表11-13所示。
表11-13 compilation区段的相关属性
属 性 |
说 明 |
debug |
是否打开除错模式,默认为 False 不打开,True 为打开 |
defaultLanguage |
默认的程序语言,例如C#、VB 或 PERL,默认值是 VB |
explicit |
Microsoft Visual Basic 是否使用 explicit 方式编译,也就是所有变量都需要事先声明,默认值是 True |
在 web.config 文件中使用 compilation 标记,如同 ASP.NET 程序文件开头加上 Page 命令的 Language 和 Debug 属性,如下所示。
<%@ Page Language="VB" Debug="True" %>
11.7.6 customErrors区段的自订错误网页
在 <system.web> 子标记 <customErrors> 区段,可以设定 ASP.NET 程序的自订错误网页。例如错误代码 HTTP 404
上述错误信息是默认错误网页,显示找不到网页数据错误。在 <customErrors> 区段可以指定错误网页,如下所示
上述标记属性设定模式为 On。相关属性说明如表11-14所示。
表11-14 customErrors区段的相关属性
属 性 |
说 明 |
mode |
是否启动自订错误功能,On为启动自订错误处理,此时需要指定 defaultRedirect 属性,Off为取消自订错误处理,RemoteOnly 指定自订错误处理只显示在远程客户端,本地计算机仍然显示 ASP.NET 默认错误网页,此为默认值 |
defaultRedirect |
指定 URL 网址,当错误产生时就转址到此网址的网页,此例是显示 Ch11-7error.htm 网页 |
在 customErrors 区段拥有多个 error 子标记,每一个 error 标记可以定义 HTTP 错误代码的自订错误网页,如下所示
上述的 error 标记使用 statusCode 属性指定 HTTP 错误代码为 404,如果错误产生,就转址到 redirect 属性值的 NotFoundError.htm 网页。
11.8.2 ASP.NET 设定工具
除了 Visual Web Developer 提供 Web 接口的 ASP.NET 网站管理工具外,如果计算机安装了IIS,在安装 .NET Framework 2.0后就会在 Internet Information Services 管理工具中创建ASP.NET 设定工具。
启动 Internet Information Services 管理工具,在网站虚拟目录上右击,在弹出的快捷菜单中选择“属性”命令,打开属性对话框。
在ASP.NET选项卡中单击“编辑配置”按钮,可以看到“ASP.NET 配置设置”工具。
在上图中各选项卡的功能如下所示。
● 常规:创建与编辑数据库连接字符串和应用程序参数。
● 自定义错误:设定自定义错误处理和自定义错误网页。
● 授权:创建与编辑验证规则。
● 身份验证:指定使用的认证方式和选择成员与角色提供者。
● 应用程序:设定与编辑 Web 应用程序的相关设定。
● 状态管理:设定 Web 应用程序的状态管理。
● 位置:指定特殊路径和子路径,是否需要拥有专用设定数据。