ASP.NET SQL Server 註冊工具 (Aspnet_regsql.exe)
更新:2007 年 11 月
ASP.NET SQL Server 註冊工具 (Aspnet_regsql.exe) 是用來建立 ASP.NET 中 SQL Server 提供者所使用之 Microsoft SQL Server 資料庫。這個工具也會用來加入或移除現有資料庫中的選項。
不論您使用的是哪個版本的 .NET Framework,Aspnet_regsql.exe 檔案位於 Web 伺服器電腦的下列資料夾中:
[drive:]\%windir%\Microsoft.NET\Framework\v2.0.50727
您可以在不使用任何命令列引數的情況下執行 Aspnet_regsql.exe,如此便可執行精靈,使其逐步引導您為 SQL Server 安裝指定連接資訊,以及為成員資格、角色管理、設定檔、Web 組件個人化和健康監視等功能安裝或移除資料庫項目(設定工作階段狀態和 SQL 快取相依性不在精靈的工作範圍內)。您還可以使用下表中所列的選項,將 Aspnet_regsql.exe 當做命令列工具執行,以指定要加入或移除之個別功能的資料庫項目。
Aspnet_regsql.exe <options>
SQL 連接選項
選項 |
說明 |
---|---|
-? |
在命令視窗中列印 Aspnet_regsql.exe 說明文字。 |
-W |
以精靈模式執行此工具。如果未指定任何命令列引數,此選項為預設值。 |
-C <connection string> |
為執行 SQL Server 且即將安裝或已安裝資料庫的電腦指定連接字串。如果僅指定伺服器 (-S) 和登入 (-U 和 -P 或 -E) 資訊,這個選項就不是必要項。 |
-S <server> |
指定執行 SQL Server 且即將安裝或已安裝資料庫的電腦名稱。 |
-U <login ID> |
登入時使用的 SQL Server 使用者 ID。這個選項還需要密碼 (-P) 選項。如果使用 Windows 認證 (-E) 驗證,則不需要這個選項。 |
-P <password> |
登入使用的 SQL Server 密碼。這個選項還需要使用者 ID (-U) 選項。如果使用 Windows 認證 (-E) 驗證,則不需要這個選項。 |
-E |
使用目前登入使用者的 Windows 認證進行驗證。 |
-sqlexportonly <filename> |
產生可用於加入或移除指定功能的 SQL 指令碼檔。指定的動作不會執行。 |
應用程式服務選項
選項 |
說明 |
---|---|
-A all|m|r|p|c|w |
加入一或多項 ASP.NET 應用程式服務的支援。服務識別項可以一起指定,也可以分開指定。下列識別項用於 ASP.NET 應用程式服務: all - 所有服務,包括服務共用的通用資料表和預存程序 m - 成員資格 r - 角色管理員 p - 設定檔 c - Web 組件個人化 w - Web 事件 |
-R all|m|r|p|c|w |
移除一或多項應用程式服務的支援。服務識別項可以一起指定,也可以分開指定。下列識別項用於 ASP.NET 應用程式服務: all - 所有服務,包括服務共用的通用資料表和預存程序 m - 成員資格 r - 角色管理員 p - 設定檔 c - Web 組件個人化 w - Web 事件 |
-Q |
以無訊息模式執行此工具,而且在移除應用程式服務之前不進行確認。 |
-d <database> |
指定要建立或修改以搭配應用程式服務使用的資料庫名稱。如果未指定資料庫,則會使用預設資料庫名稱 "aspnetdb"。 |
注意事項: |
---|
安裝在應用程式服務資料庫中的資料庫項目,永遠都會由 SQL Server 資料庫擁有人帳戶 (dbo) 所擁有。您不需要成為執行 SQL Server 之電腦的系統管理員,便可安裝應用程式服務資料庫。若要安裝應用程式服務資料庫,就必須允許 db_ddladmin 和 dd_securityadmin 等角色透過 SQL Server 登入來存取 SQL Server 資料庫。 |
SQL 快取相依性選項 (適用於 Microsoft SQL Server 7.0、Microsoft SQL Server 2000 和 SQL Server 2005)
選項 |
說明 |
---|---|
-d <database> |
指定要與 SQL 快取相依性搭配使用的資料庫名稱。您也可以使用連接字串選項 -C 來選擇性地指定資料庫。 |
-ed |
啟用 SQL 快取相依性的資料庫。 |
-dd |
停用 SQL 快取相依性的資料庫。 |
-et |
啟用 SQL 快取相依性的資料表。-t 選項也必須包含在參數字串中。 |
-dt |
停用 SQL 快取相依性的資料表。-t 選項也必須包含在參數字串中。 |
-t <table> |
指定要啟用或停用以搭配 SQL 快取相依性使用的資料表名稱。這個選項必須與 -et 或 -dt 選項搭配使用。 |
-lt |
列出所有已啟用之 SQL 快取相依性的資料表。 |
工作階段狀態選項
選項 |
說明 |
---|---|
-d <database> |
指定要用來儲存工作階段狀態的資料庫名稱。如果 -sstype 設定為 c,則必須使用這個選項。 |
-ssadd |
加入對 SQLServer 模式工作階段狀態的支援。 |
-ssremove |
移除對 SQLServer 模式工作階段狀態的支援。 |
-sstype t|p|c |
指定要使用的工作階段狀態類型: t - 暫時。工作階段狀態資料儲存在 SQL Server tempdb 資料庫中。用來管理工作階段狀態的預存程序則是安裝在 SQL Server ASPState 資料庫中。如果重新啟動 SQL,將不會保存資料。這是預設值。 p - 保存。工作階段狀態資料和預存程序都是儲存在 SQL Server ASPState 資料庫中。 c - 自訂。工作階段狀態資料和預存程序都儲存在自訂的資料庫中。資料庫名稱必須使用 -d 選項來指定。 |
備註
您可以使用 ASP.NET SQL Server 註冊工具設定數種選項類型。您可以指定 SQL 連接、指定哪些 ASP.NET 應用程式服務要使用 SQL Server 管理資訊、指出哪一個資料庫或資料表要用於 SQL 快取相依性,以及加入或移除使用 SQL Server 儲存程序和工作階段狀態的支援。
有數個 ASP.NET 應用程式服務需依賴提供者來管理從資料來源儲存和擷取資料。每個提供者都是資料來源特定的。ASP.NET 包含下列 ASP.NET 功能的 SQL Server 提供者:
成員資格 (SqlMembershipProvider 類別)。
角色管理 (SqlRoleProvider 類別)
設定檔 (SqlProfileProvider 類別)。
Web 組件個人化 (SqlPersonalizationProvider 類別)
Web 事件 (SqlWebEventProvider 類別)
當您安裝 ASP.NET 時,伺服器的 Machine.config 檔會包含組態項目,這些組態項目會針對依賴於提供者的每個 ASP.NET 功能指定 SQL Server 提供者。根據預設,這些提供者會設定為連接到 SQL Server Express 2005 的本機使用者執行個體 (Instance)。如果變更提供者所使用的預設連接字串,在您使用電腦組態中所設定的任何 ASP.NET 功能之前,您必須使用 Aspnet_regsql.exe 為您選擇的功能安裝 SQL Server 資料庫和資料庫項目。如果您使用 Aspnet_regsql.exe 指定的資料庫尚未存在 (如果未在命令列中指定資料庫,aspnetdb 將會是預設資料庫),則目前使用者必須擁有在 SQL Server 中建立資料庫,以及在資料庫內建立結構描述項目的權限。
每個 SQL Server 提供者都可以使用相同的 SQL Server 資料庫來儲存該特定功能的資料。每個功能都可以個別使用,也可以與其他功能搭配使用。例如,您可以單獨使用角色管理,也可以將其與成員資格所管理的使用者資訊搭配使用。
如需 SQL Server 提供者和 ASP.NET 的詳細資訊,請參閱實作成員資格提供者、實作設定檔提供者和實作角色提供者。
SQL 快取相依性
ASP.NET 輸出快取的進階功能是 SQL 快取相依性。SQL 快取相依性支援兩種不同的作業模式:一種模式使用資料表輪詢的 ASP.NET 實作 (Implementation),另一種模式則使用 SQL Server 2005 的查詢告知功能。Aspnet_regsql.exe 可以用來設定作業的資料表輪詢模式。SQL 快取相依性能夠讓您快取相依於 SQL Server 資料表之資料的網頁。您可以設定 SQL Server 和 ASP.NET 快取網頁要求,以降低伺服器工作負載,直到網頁相依的資料在 SQL Server 中更新。SQL 快取相依性對如產品目錄等資料或保持相對靜態的客戶註冊資訊非常有用。請注意在使用 SQL 快取相依性的 ASP.NET 資料表輪詢模式時,您必須設定 SQL Server,使其向 ASP.NET 提供關於相依資料之變更的適當告知。因此,您必須擁有可設定伺服器的管理權限。如需 SQL 快取相依性的詳細資訊,請參閱逐步解說:將 ASP.NET 輸出快取功能與 SQL Server 搭配使用。
工作階段狀態
ASP.NET 工作階段狀態設計的目的,是為了讓您能夠輕鬆儲存 ASP.NET 應用程式中,不同來源的使用者工作階段。根據預設,工作階段狀態的值和資訊會儲存在 ASP.NET 處理序所在的記憶體中。或者,您可以將工作階段資料儲存在 SQL Server 資料庫中,讓多部 Web 伺服器可以在該資料庫中共用資料。如需工作階段狀態的詳細資訊,請參閱實作工作階段狀態存放區提供者和工作階段狀態模式。
如果您使用 Aspnet_regsql.exe 為工作階段狀態指定的資料庫尚未存在,則目前使用者必須擁有在 SQL Server 中建立資料庫,以及在資料庫內建立結構描述項目的權限。如果資料庫不存在,則目前使用者必須擁有在現有資料庫中建立結構描述項目的權限。
若要在 SQL Server 上安裝工作階段狀態資料庫,請執行 Aspnet_regsql.exe 工具,並以命令提供下列資訊:
使用 -S 選項提供 SQL Server 執行個體的名稱。
帳戶的登入認證,該帳戶具有在執行 SQL Server 的電腦上建立資料庫的使用權限。以 -E 選項使用目前登入的使用者,或使用 -U 選項指定使用者 ID 並搭配 -P 選項指定密碼。
用於加入工作階段狀態資料庫的 -ssadd 命令列選項。
根據預設,您無法使用 Aspnet_regsql.exe 在執行 SQL Server 2005 Express Edition 的電腦上安裝工作階段狀態資料庫。如需使用 SQL Server 2005 Express Edition 儲存工作階段狀態的詳細資訊,請參閱工作階段狀態模式。
範例
您可以在不使用任何命令列引數的情況下執行 Aspnet_regsql.exe,以執行精靈,引導您為 SQL Server 資料庫指定連接資訊,以及為支援的功能安裝或移除資料庫項目。您還可以將 Aspnet_regsql.exe 做為命令列工具執行,以指定要加入或移除之個別功能的資料庫項目。若要指定 SQL 快取相依性設定或設定工作階段狀態,必須使用命令列工具。
若要執行精靈,在執行 Aspnet_regsql.exe 時,請不要使用任何命令列引數,如下列範例所示:
C:\%windir%\Microsoft.NET\Framework\<versionNumber>\aspnet_regsql.exe
ASP.NET SQL 註冊工具通常會與 -A 或 -R 選項搭配使用,以指定哪些功能要使用 SQL Server 提供者。-A 選項可以讓您加入一或多項功能的支援,而 -R 選項則可以讓您移除功能。下列命令會使用 Windows 驗證,將成員資格和角色管理的資料庫項目安裝到執行 SQL Server 的本機電腦上。
aspnet_regsql.exe -E -S localhost -A mr
若要設定 SQL 快取相依性,需要有系統管理員權限或系統管理帳戶和密碼。下列命令會為 Northwind 資料庫中的 Employees 資料表啟用 SQL 快取相依性。
aspnet_regsql.exe -S <Server> -U <Username> -P <Password> -ed -d Northwind -et -t Employees
下列命令會在名為 "SampleSqlServer" 的 SQL Server 執行個體上建立名為 ASPState 的資料庫,並指定工作階段資料也要存放在 ASPState 資料庫中。
aspnet_regsql.exe -S SampleSqlServer -E -ssadd -sstype p