服務熱線
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文件詳解