服务热线
153 8323 9821
11.7 使用web.config配置文件
Web配置文件web.config是Web 应用程序的数据设定文件,它是一份 XML 文件,内含 Web 应用程序相关设定的 XML 标记,可以用来简化 ASP.NET 应用程序的相关设定。
11.7.1 Web配置文件的基础
Web 配置文件web.config位于 Web 应用程序的任何目录中,子目录如果没有 web.config 文件,就是继承父目录 web.config 文件的相关设定;如果子目录有 web.config 文件,就会覆盖父目录 web.config 文件的相关设定。
.NET Framework 根配置文件名称是 Machine.config,存储在 Windows 文件夹下Microsoft.NET\Framework\<version>\CONFIG,整个 Web 服务器所有 Web 应用程序的设定都是继承此配置文件,如果需要更改设定,可使用 web.config 文件在各目录中覆盖相关设定。
Web 配置文件是一份 XML 文件,在 XML 标记的属性就是设定值,标记名称和属性值格式是字符串,第 1 个开头字母是小写,之后每一字头是大写,例如<appSettings>。Web 配置文件的范例如下所示。
<configuration>
<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 状态 HttpModule
(续表)
设 定 区 段
说 明
<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> 区段中,可以创建参数和数据库连接字符串,如下所示。
<configuration>
<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>
上述 <appSettings> 标记的子标记是创建参数,每一个 <add> 标记可以创建一个参数,属性 key 是参数名称,value 是参数值。
在 <connectionStrings> 标记的 <add> 子标记也可以创建连接字符串,属性 name 是名称,connectionString 属性是连接字符串内容。
2. Conifguration API的基础
ASP.NET 2.0 的 Configuration API 可以存取 web.config 和 machine.config 配置文件的设定数据。在ASP.NET 程序中是使用 System.Web.Configuration 名称空间的 WebConfigurationManager 类来存取相关设定。首先导入所需的名称空间,如下所示。
<%@ Import NameSpace="System.Web.Configuration" %>
上述 Import命令导入 System.Web.Configuration 名称空间,接着就可以获取 <appSettings> 区段创建的参数,如下所示。
Dim dbType As String = WebConfigurationManager.AppSettings("dbType")
上述程序代码使用AppSettings属性获取指定参数,使用的是<add>标记的key 属性。同样可以获取<connectionStrings>区段的数据库连接字符串,如下所示。
Dim pd, db As String
pd = WebConfigurationManager.ConnectionStrings( _
"provider").ConnectionString
db = WebConfigurationManager.ConnectionStrings( _
"database").ConnectionString
上述程序代码使用 ConnectionStrings 属性获取参数 provider 和 database 的值,即 <add> 标记的 name 属性。完整 ASP.NET 程序范例是 Ch11-7-2.aspx,其执行结果使用表格显示数据表记录,如图11-12所示。
图11-12 Ch11-7-2.aspx运行结果
上图的Access Database是<appSettings>区段的应用程序参数,数据表是使用 GridView控件来显示记录数据,数据库连接字符串是定义在web.config 文件。
11.7.3 在sessionState区段设定Session状态
ASP.NET的Session状态管理拥有扩充性,可以在web.config文件的 <sessionState>区段设定Session状态管理,它属于<system.web>
上一篇:web.config文件详解