2010年5月1日 星期六

ASPNETDB無法連線(Login控制項、MemberShip)

無法建立與資料庫的連接。
如果尚未建立 SQL Server 資料庫,請結束網站管理工具,然後使用 aspnet_regsql 命令列公用程式建立並設定資料庫,再回到這項工具以設定提供者。

資料庫是利用 ASPNET_REGSQL.EXE 建立,名稱可以自行指定!

明明連線字串設定沒問題「
<add name="'LoginUser'" connectionstring="'workstation" id="MOJ_GARY;packet" size="4096;user" id="帳號;data" source="伺服器;persist" info="True;initial" catalog="資料庫;password="密碼'">

<roleManager enabled="'true'" cacherolesincookie="'true'" cookiename="'.ASPROLES'" defaultprovider="'rProvider'">
<providers>
<add name="'rProvider'" connectionstringname="'LoginUser'......" />
</providers>
</roleManager>

<membership defaultprovider="mProvider">
<providers>
<add connectionStringName="LoginUser" Name="
mProvider" ....../>
</providers>
</membership>


Trace 程式及 Sql Server,Login時的確也有連線到指定的DB,可是驗證卻都不成功,利用VS2008的「ASP.NET組態」工具測試,安全性應用程式頁的測試都成功,但提供者-->(進階)頁的「測試」卻都不成功(如最上面的訊息)!

經 Google 後,在「http://www.dotblogs.com.tw/johnny/archive/2010/01/20/13131.aspx」找到了答案,原來在 Web.config 中一定加上 LocalSqlServer 這個連線字串,這個字是固定的,不能改它!
也就是說要在 Web.Config 中加入:
<remove name="LocalSqlServer" />
<!--為避免與 Machine.Config 的設定沖突,所以要加 remove 這一行-->
<add name="LocalSqlServer" connectionstring="Data Source=伺服器;Initial Catalog=資料庫;User ID=帳號;Password=密碼" providername="System.Data.SqlClient" />

===== 完 畢 =====

沒有留言:

張貼留言