Pages

2009年10月20日 星期二

將預設的 Membership、Roles 等功能所使用的資料庫以 SQL Server 取代

我們知道使用 VS2005 設計 ASP.NET 2.0 的網站時,你可以使用內建而且現成的 Membership、Roles、Profile 等等功能,而且你可以利用 ASP.NET 組態工具來建立 app_data 資料夾下的 aspnetdb 資料庫,裡面就是上述功能所使用的資料庫檔案。




不過在上述情況中,你必須在本機上安裝有 SQL Express 來作為資料庫引擎。然而,畢竟 SQL Express 只能使用於小網站,其功能無論如何都不能與 SQL Server 相比擬。那麼你要如何將資料庫轉移到 SQL Server 而非 SQL Express 呢?



如果你只是希望使用 SQL Server 取代 SQL Express 的話,那就非常容易了。但如果你要使用其它的資料庫,例如 Oracle 或 Access,那麼你必須自訂 Provider,其過程就不那麼容易,而且也不在本文所涵蓋的範圍之內。如果你有興趣,請前往 http://msdn2.microsoft.com/zh-tw/asp.net/aa336558(en-us).aspx。



要使用 SQL Server 取代 SQL Express 以作為 Membership、Roles、Profiles 等內建功能的資料庫,總共只有兩個簡單的步驟,詳述如下。



第一步,請執行 aspnet_regsql.exe (位於 C:\Windows\Microsoft.NET\Framework\v2.0.50727\ 或 C:\Windows\Microsoft.NET\Framework64\v2.0.50727\子目錄下),它會啟動一個精靈,幫你在 SQL Server 中建立所需的資料庫。你要做的事情很單純,就是輸入連線方式,指定資料庫名稱(不需取名為 ASPNETDB,可以是任何名稱),接著,它會幫你把資料庫建立起來。當然,你最好另外設定該資料庫的各種權限,我想這就不用多說了吧。



第二步,你必須在網站中的 Web.config 檔案中加上必要的連線字串如下。請注意,LocalSqlServer 這個字是固定的,不能改它。





...









現在,你已經可以使用這個位於 SQL Server 上的資料庫以及 ASP.NET 2.0 內建的各項功能,而且可以使用 ASP.NET 組態工具以接續其它的設定了。



請記得 這一行絕對不能省略,否則將會發生許多奇怪的錯誤。

沒有留言:

張貼留言