結合使用 ASP.NET 和 SQL Server Express Edition

來源:互聯網
上載者:User

轉http://msdn2.microsoft.com/zh-cn/library/ms228037.aspx

Microsoft SQL Server 2005 Express 版為產生應用程式提供了一個簡單的資料庫解決方案。SQL Server Express Edition 支援 SQL Server 2005 的完整編程模型,包括 Transact-SQL、預存程序、視圖、觸發器、SQL Server CLR 整合 (SQLCLR) 和 XML 資料類型。當您開發一個使用 SQL Server Express 版作為資料來源的應用程式時,可以確保應用程式將與運行 SQL Server 2005 的成品伺服器相容。

串連到 SQL Server Express 版資料庫

通過將資料庫伺服器指定為本地 SQL Server Express 版資料來源,您可以串連到 SQL Server Express 版資料庫,就像您串連到任何 SQL Server 資料庫一樣。例如,下面的連接字串串連到一個名為 Customers 的資料庫。

Data Source=.\SQLEXPRESS;Initial Catalog=Customers;Integrated Security=True;

通過使用 AttachDBFilename 連接字串屬性代替 InitialCatalog 或 Database 連接字串屬性,還可以指定要附加到的資料庫檔案。通過使用檔案名稱串連到資料庫可以簡化將資料庫與應用程式一起部署的工作(假如目標伺服器啟動並執行是 SQL Server Express 版)。例如,下面的連接字串串連到儲存在 Customers.mdf 檔案中的資料庫。

Data Source=.\SQLEXPRESS;AttachDbFileName=e:\data\Customers.mdf;Integrated Security=True;User Instance=True

ASP.NET 提供了用於在 Web 應用程式的 App_Data 目錄中儲存資料的便捷選項。App_Data 目錄的內容不會在響應 Web 請求時提供,從而提高了應用程式的資料安全性。作為附加的便利措施,可以提供 |DataDirectory| 連接字串變數代替應用程式的 App_Data 目錄的檔案路徑。當開啟到資料庫的串連時,ASP.NET 功能(如 SqlDataSource 控制項或用於成員資格、角色、使用者設定檔、Web 組件個人化等的提供者)自動將 App_Data 目錄的檔案路徑替換為 |DataDirectory| 連接字串變數。如果將 Web 應用程式移動到另一個目錄,這可以確保資料庫的路徑保持最新。下面的程式碼範例示範一個包含 |DataDirectory| 連接字串變數的連接字串。

Data Source=.\SQLEXPRESS;AttachDbFileName=|DataDirectory|Customers.mdf;Integrated Security=True;User Instance=True
注意

當您與 User Instance 設定為 true 的連接字串進行串連時,SQL Server Express 版只允許有單個串連連到 .mdf 檔案。

如果需要釋放到 SQL Server Express Edition 資料庫的任何開啟的串連,可以使用 Internet 資訊服務管理器(IIS 管理器)卸載 Web 應用程式。還可以向 Web 應用程式的根目錄添加一個名為 App_offline.htm 的 HTML 檔案來卸載 Web 應用程式。若要允許 Web 應用程式再次開始響應 Web 請求,只需移除 App_offline.htm 檔案。當您要將資料庫複寫或移動到新位置時,您需要釋放開啟的 SQL Server Express 版資料庫連接。

設定 SQL Server Express 版資料庫

通過串連到運行 SQL Server Express Edition 的電腦並發出 CREATE DATABASE 命令,或者通過使用為 SQL Server Express Edition 提供的 SQL Server 管理工具,可以建立 SQL Server Express Edition 資料庫。此外,開發工具(如 Visual Studio)提供了可使您可以輕鬆建立和管理 SQL Server Express Edition 資料庫的資料管理工具。

在 SQL Server 資料庫中儲存資料的 ASP.NET 功能(如成員資格、角色、使用者設定檔、Web 組件個人化等)的預設提供者被配置為串連到應用程式的 App_Data 目錄中的 Aspnetdb.mdf SQL Server Express Edition 資料庫。如果啟用這些使用預設提供者的資料存放區功能中的任何一項,並且在應用程式的 App_Data 目錄中不存在 Aspnetdb.mdf SQL Server Express Edition 資料庫,則該資料庫將自動建立。如果應用程式的 App_Data 目錄不存在,則還會建立該目錄。

使用者執行個體

SQL Server Express 版支援使用者執行個體,這意味著系統將為串連到 SQL Server Express 版資料庫的每個使用者啟動一個新進程。進程的標識將為開啟該串連的使用者。有關如何確定 ASP.NET 應用程式識別碼的資訊,請參見 ASP.NET 類比。

雖然啟用使用者執行個體適合於案頭開發,但是啟動輔助進程不適合為多個客戶託管網站的 Web 服務器,在這種情況下,必須分離應用程式並進行安全保護。使用相同進程標識啟動並執行 ASP.NET 應用程式可以串連到同一個使用者執行個體。由於在 Windows 2000 和 Windows XP Professional 上,所有 ASP.NET 應用程式都使用相同的進程標識(預設為本地 ASPNET 帳戶)運行,而在 Windows Server 2003 上,同一應用程式集區中的 ASP.NET 應用程式也使用相同的進程標識(預設為 NETWORK SERVICE 帳戶)運行,因此包含互不信任的應用程式的託管伺服器應該顯式禁用使用者執行個體。通過串連到 SQL Server Express 版執行個體(例如,通過在命令提示字元處發出以下命令:osql –E –S .\SQLEXPRESS)並發出以下 Transact-SQL 命令,可關閉此功能。

EXEC sp_configure 'show advanced option', '1'

GO

RECONFIGURE WITH OVERRIDE

GO

EXEC sp_configure 'user instances enabled', 0

GO

RECONFIGURE WITH OVERRIDE

GO

部署 SQL Server Express 版資料庫

SQL Server Express Edition 資料庫由兩個檔案組成:.mdf 檔案,其中包含資料庫結構描述和資料;.ldf 檔案,其中包含資料庫的日誌資訊。如果對 SQL Server Express Edition 資料庫進行基於檔案的串連,可以使用 XCopy、FTP 或其他方法將這些檔案隨應用程式一起複製到目標伺服器。只要目標伺服器上安裝了 SQL Server Express Edition,應用程式就會繼續運行。

因為 SQL Server Express 版使用與其他版本的 SQL Server 2005 相同的檔案格式,所以您可以將 .mdf 和 .ldf 檔案複製到運行 SQL Server 的伺服器,然後附加檔案作為資料庫。

注意

如果您正在將 SQL Server Express 版資料庫部署到承載多個互不信任網站的 Web 服務器,則您無法使用基於檔案的串連或使用者執行個體,來協助確保資料不會公開給伺服器上的其他應用程式。在此情況下,建議您將 SQL Server Express 版資料庫的內容遷移到部署的 ASP.NET 應用程式可以訪問的另一個版本的 SQL Server 2005。

如果想要複製包含資料庫結構描述但是不包含資料的 SQL Server Express Edition 空資料庫,SQL Server 管理工具可使您產生可在目標資料庫中運行以複製開發資料庫中的架構的指令碼。

如果 SQL Server Express 版資料庫包含加密的資訊,例如儲存在成員資格資料庫中的加密密碼,請確保加密金鑰也已複製到目標伺服器。

如果您要移動整個 SQL Server Express 版資料庫,您需要確保沒有開啟的資料庫連接,該串連會導致資料庫被鎖定。

取消對鎖定資料庫的鎖定

如果存在開啟的資料庫連接,則該資料庫將被鎖定,並且無法移動或刪除。開啟的串連可能由 ASP.NET 應用程式、Visual Studio 之類別設計工具或其他某個程式或資料庫用戶端所保留。若要取消對資料庫的鎖定,必須關閉所有開啟的資料庫連接。可以用以下方法關閉開啟的串連:

  • 可以通過退出程式來關閉設計器所保留的串連。(在 Visual Studio 中,在“方案總管”中右擊資料庫並選擇“分離”選項;或者可以在“伺服器總管”中右擊資料庫並選擇“關閉串連”選項。)

  • 可以通過結束應用程式來關閉 ASP.NET 應用程式所保留的任何串連。這可以使用 IIS 管理器來完成,或者將名為 App_offline.htm 的檔案放在 ASP.NET 應用程式的根目錄中(必須移除此檔案才能重新啟動應用程式)。

  • 通過退出程式,您可以關閉由其他資源(如 Windows 表單應用程式)佔用的任何串連。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.