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 配置文件的范例如下所示.
<appSettings>
<add key="dbType" value="Access Database"/>
</appSettings>
<connectionStrings>
<add name="provider"
connectionString="Microsoft.Jet.OLEDB.4.0;"/>
<add name="database"
connectionString="/Ch11/Products.mdb"/>
</connectionStrings>
<system.web>
<sessionState cookieless="false" timeout="10"/>
<globalization
fileEncoding="gb2312"
requestEncoding=" gb2312"
responseEncoding=" gb2312"
culture="zh-CN"/>
<compilation defaultLanguage="VB" debug="true"/>
<customErrors mode="RemoteOnly"/>
</system.web>
</configuration>
上述 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="dbType" value="Access Database"/>
</appSettings>
<connectionStrings>
<add name="provider"
connectionString="Microsoft.Jet.OLEDB.4.0;"/>
<add name="database"
connectionString="/Ch11/Products.mdb"/>
</connectionStrings>
<system.web>
………
</system.web>
</configuration>
在 <connectionStrings> 标记的 <add> 子标记也可以创建连接字符串,属性 name 是名称,connectionString 属性是连接字符串内容。
11.7.3 在sessionState区段设定Session状态
ASP.NET的Session状态管理拥有扩充性,可以在web.config文件的 <sessionState>区段设定Session状态管理,它属于<system.web>的子标记,如下所示。
<system.web>
<sessionState cookieless="false" timeout="10"/>
………
</system.web>
</configuration>
表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 程序默认的文件编码、请求和响应的编码方式、日期时间格式和数字等本地化设定,如下所示
<system.web>
<globalization
fileEncoding="gb2312"
requestEncoding=" gb2312"
responseEncoding=" gb2312"
culture="zh-CN"/>
………
</system.web>
</configuration>
表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 程序默认的编译方式,如下所示
<system.web>
<compilation defaultLanguage="VB" debug="true"/>
………
</system.web>
</configuration>
表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> 区段可以指定错误网页,如下所示
<system.web>
<customErrors mode="On" defaultRedirect="Ch11-7error.htm"/>
………
</system.web>
</configuration>
表11-14 customErrors区段的相关属性
属 性 |
说 明 |
mode |
是否启动自订错误功能,On为启动自订错误处理,此时需要指定 defaultRedirect 属性,Off为取消自订错误处理,RemoteOnly 指定自订错误处理只显示在远程客户端,本地计算机仍然显示 ASP.NET 默认错误网页,此为默认值 |
defaultRedirect |
指定 URL 网址,当错误产生时就转址到此网址的网页,此例是显示 Ch11-7error.htm 网页 |
在 customErrors 区段拥有多个 error 子标记,每一个 error 标记可以定义 HTTP 错误代码的自订错误网页,如下所示
<system.web>
<customErrors mode="On"
defaultRedirect="Ch11-7error.htm">
<error statusCode="404"
redirect="NotFoundError.htm"/>
</customErrors>
</system.web>
</configuration>
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 应用程序的状态管理。
● 位置:指定特殊路径和子路径,是否需要拥有专用设定数据。