ASP.NET 2.0使用user profile儲存資訊前,如何部署aspnetdb.mdf和串連

來源:互聯網
上載者:User
 

我在解決這個問題的時候走了不少彎路,現將方法總結給大家!希望不會有人想我一樣,花了9個小時才弄好。

無論是SQL SERVER 2005還是SQL SERVER EXPRESS都可能遇到這個問題。

前提:當我在項目的Web.Config檔案中添加

<anonymousIdentification enabled="true"/>
<profile enabled="true">
<properties>
<add name="MyNewProperty" allowAnonymous="true" />
</properties>
</profile>

後,如果正確,將可以通過

//code in Page1.aspx
Profile.MyNewProperty = "Hello";

//

//code in Page2.aspx
string myProperty = Profile.MyNewProperty;
訪問。

問題出現:

修改過Web.Config後,對於項目內的任何頁面,調試運行時報錯:
使用者代碼未處理 HttpException
無法串連到 SQL Server 資料庫。

直接瀏覽時報錯:
禁止在 SQL Server 中產生使用者執行個體。請使用 sp_configure 'user instances enabled' 產生使用者執行個體。

自己尋找問題,又發現
在VS2005中任意開啟一個asp.net網站-〉功能表列 網站-〉ASP.NET 配置-〉提供者-〉AspNetSqlProvider 測試
也出現同樣的錯誤。
提供者管理
未能建立資料庫連接。如果尚未建立 SQL Server 資料庫,請退出網站管理工具,使用 aspnet_regsql 命令列工具 + 生產力建立和設定資料庫,然後返回到此工具以設定提供者。

運行SDK下的aspnet_regsql啟用嚮導配置,在出現選擇伺服器和資料庫時(可能出現)
未能查詢Sql Server中的資料庫名稱的列表。
在建立與伺服器的串連時出錯。

解決方案:

1.
建議首先開啟SQL Server Management Studio Express看看是否存在名為aspnetdb的資料庫。

2.
若不存在,運行SDK下的aspnet_regsql啟用嚮導配置產生資料庫。
開始 --> Microsoft .NET Framework SDK v2.0 --> SDK 命令提示 --> 輸入aspnet_regsql --> 兩次下一步後,輸入伺服器名,LQB-PC\SqlExpress,要和平時訪問資料庫是Data Source=後面的內容一致,預設的不含“\SqlExpress”,選好Windows身分識別驗證後,點擊下拉式清單箭頭能刷出來幾個資料庫名稱,那麼點擊下一步,直至完成。這樣,再次開啟SQL Server Management Studio Express就會看到剛剛建立好的aspnetdb資料庫。

3.用SQL Server Management Studio Express建立一個登入名稱aspnetsa。

對此使用者的登陸屬性中使用者映射設定選中

在伺服器屬性頁面設定

在aspnetdb屬性設定加添aspnetsa許可權,我偷懶,就把全部許可權都點了。

這樣,使用者就建立好了

4.接下來是還要修改連接字串。
在系統硬碟:\WINDOWS\Microsoft.NET\Framework\<版本號碼>\CONFIG下有web.config和mechine.config兩個檔案,
其中會有一個檔案中包含這樣一段代碼。

<connectionStrings>
<add name="LocalSqlServer" connectionString="Data Source=./SQLExpress;Integrated Security=true;AttachDBFileName=|DataDirectory|aspnetdb.mdf;User Instance=True" providerName="System.Data.SqlClient"/>
</connectionStrings>
這個連接字串需要根據自己的情況修改,可以不採用原來的格式。這樣修改下來。
"Data Source=LQB-PC\SQLEXPRESS;Initial Catalog=aspnetdb;Integrated Security=false;UID=aspnetsa;PWD=xxxxxx"
5.再次在VS2005中任意開啟一個asp.net網站-〉功能表列 網站-〉ASP.NET 配置-〉提供者-〉AspNetSqlProvider 測試
這是應該會出現:已成功建立到資料庫的串連。如果成功,恭喜你!如果不成功,回到第三步,根據錯誤提示修改一下aspnetsa的許可權等,並且檢查一下你的連接字串是否有錯。

6.現在作一個簡單的例子測試一下:

在vs2005中建立一個asp.net網站,先點調試,關閉,這時項目中會有一個Web.Config檔案,開啟,在最後的
</system.web>
</configuration>
的前面添加
<anonymousIdentification enabled="true"/>
<profile enabled="true">
<properties>
<add name="MyNewProperty" allowAnonymous="true" />
</properties>
</profile>儲存。

在Default.aspx中拖入一個Label(ID:resultLabel),Button(ID:okButton),修改代碼如下:
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack == false)
{
Profile.MyNewProperty = "Red";
}
}
protected void okButton_Click(object sender, EventArgs e)
{
resultLabel.Text = Profile.MyNewProperty;
}
調試運行。如果不出現本文開頭的兩種紅字的錯誤,那麼已經配置好了,這時點擊按鈕在標籤中會顯示Red,Congratulations!

來源:http://www.cnblogs.com/lqb

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.