最近在把電腦(nǎo)系統升級到windows10過程中,安裝IIS一切正常,在調試asp網站過程中發現報錯”Microsoft JET Database Engine 錯誤 '80004005'“,但是不調用(yòng)數據庫的(de)程序代碼正常打開,想可(kě)能是Fat32可(kě)能的(de)原因,上網查相關材料後發現不是權限問題。
1、程序代碼:
Dim databasePath,conn,connString
databasePath = "db.mdb"
Set conn = Server.CreateObject("ADODB.Connection")
connString = "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath( databasePath )
conn.Open connString
錯誤信息如下(xià):
[url]http://127.0.0.1/conn.asp[/url]
Microsoft JET Database Engine 錯誤 '80004005'
未指定的(de)錯誤
/conn.asp,行 6
2、初步測試
看看連接語句也(yě)沒什(shén)麽錯誤,不過第一反應還(hái)是換個(gè)寫法:
程序代碼:2
Dim databasePath,conn,connString
databasePath = "kphc.mdb"
Set conn = Server.CreateObject("ADODB.Connection")
connString = "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath( databasePath )
conn.Open connString
錯誤如下(xià):
[Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x474 Thread 0x290 DBC 0x79d024 Jet'.
/conn2.asp,行 6
3、再分(fēn)析
一般遇到這(zhè)種問題,多(duō)數是因爲mdb文件所在目錄中IUSER_SERVENAME用(yòng)戶沒寫權限引起的(de),不過我朋友木(mù)魚的(de)服務器是我親手配置的(de),權限設置沒有問題。在IIS配置中加入寫權限也(yě)是錯誤依舊(jiù).
檢查C盤的(de)權限,隻有administrator和(hé)system用(yòng)戶,我突然想到數據庫寫入需要temp臨時(shí)文件有寫的(de)權限,于是修改Windows/temp的(de)權限,添加IUSR_的(de)讀寫權限。問題立即解決。
另:網上有資料是關于靜态網站改動态網站後ASP頁面打不開的(de)解決方法,操作如下(xià):
重新把IIS注冊一下(xià),命令:aspnet_regiiis -i .注意,爲什(shén)麽要這(zhè)樣呢(ne)?因爲IIS和(hé).net框架安裝是有先後順序的(de).[具體操作:在運行了(le)鍵入cmd,然後轉到c盤,在鍵入cd C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322,最後鍵入aspnet_regiis -i