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

2006/11/03

AJAX.NET 1.0 Beta AutoCompleteExtender 無法作用的問題

搞了二天才找到問題的答案....
在這裡把一些問題匯整一下><
  1. 安裝了ASPAJAXExtSetup.msi之後,想要有AutoCompleteExtender,還要再加裝ASPAJAXCTP.msi
  2. 在原本的網站方案裡,加入ScriptManager會發生找不到項目的問題,請更改web.config的pages control,把「add tagprefix="asp"」改成「add tagprefix="ajax"」就可以用了(聽說這是個bug,畢竟還在beta版)
  3. 在取得資料的WebService中,加入

[Microsoft.Web.Script.Services.ScriptService]

public class AutoCompleteService : System.Web.Services.WebService {

......


大功告成!!

請參考下列網址:
ASP.NET Forums - AutoCompleteExtender not working for me in Beta 1.0

2006/08/28

[SQL]安裝SQL 2005 SP1時發生的怪問題

為什麼要裝SQL 2005 SP1呢?
因為不裝SP1就無法使用匯入資料的功能,會出現「產品層級不夠」的錯誤訊息....

找到解決方案了,高高興興的去下載SP1來安裝,安裝到最後卻發生「Unable to install Windows Installer MSP file」的錯誤....

不想多說了,看這裡吧><....BUG: Error message when you try to install SQL Server 2005 Service Pack 1: "Unable to install Windows Installer MSP file"

沒有Google的世界該怎麼辦呀!!

軟體工程的重要的指標