2006/11/10

VS.NET 2005發佈到另一台電腦時遇到的問題及解決辦法

大都是權限的關係,網路上有人說是因為使用VS.NET 2005內建的ASPNETDB.mdf在發佈網站後,會因為Application Name的關係造成無法使用Login Controls登入的情況:

事件代碼: 4006
事件訊息: 成員資格認證驗證失敗。
事件時間: 2006/11/9 下午 03:00:26
事件時間 (UTC): 2006/11/9 上午 07:00:26
事件 ID: 610b30f39f984e5caf8fd593d71db4c2
事件序列: 2 事件項目: 1 事件詳細資料代碼: 0

... (以下省略)

解決方法是將web.config裡的application name,改成跟ASPNETDB.mdf裡的aspnet_Applications的ApplicationName、LoweredApplicationName內容一致....
但是這種方式我試過沒辦法解決....>< 後來才發現是權限的問題,發佈到其它台的電腦後,針對ASPNETDB.mdf要發放權限讓User這個帳戶可以修改及寫入才行.... 以下是我的作法:
  1. 發佈網站
  2. copy 到另一台電腦,假設目錄為c:\MyWeb\WebSite
  3. 將c:\MyWeb\WebSite1設為虛擬目錄WebSite1,開放可以寫入...並將「允許匿名存取」的功能打開
  4. 到c:\MyWeb\WebSite1\App_Data\ASPNETdB.mdf的安全性設定,把User這個帳戶授權可以修改及寫入

如此一來就可以使用Membership的Login Controls來登入了....


另外如果有出現以下錯誤訊息:
無法開啟使用者預設資料庫。登入失敗。 使用者 \ASPNET' 的登入失敗。

則是ASPNET這個帳號無法存取mdf檔,請將ASPNETDB.mdf的存取權限,加入SYSTEM這個群組,並設定可以修改及寫入....

以上是針對由VS.NET 2005產生的預設ASPNET.mdf發行到其它電腦所遇到的問題...
原則上還是建議不要使用預設的ASPNETDB.mdf

1 則留言:

匿名 提到...

Thank you for your info.

軟體工程的重要的指標