一個批處理清理了一下電腦垃圾,結果ACC數據庫就出錯。
系統環境
Windows 2003+IIS6+NTFS
ASP+Access
錯誤信息
Microsoft JETDatabase Engine 錯誤 '80004005' 未指定的錯誤
故障原因
此類錯誤一般出現於文件系統為NTFS格式中,是IIS匿名帳號(IUSR_計算機名)對相關文件、文件夾操作權限不足引起的。
一、存放數據庫文件夾對IIS匿名帳號沒有寫入、修改權限,錯誤表現為無法對數據庫進行更新、寫入
二、 系統臨時文件夾目錄對IIS匿名帳號沒有寫入、修改權限,錯誤表現為訪問服務器上任何采用Microsoft JET Database Engine 鏈接Access類數據庫的文件都是出錯。正常情況下是不會出現這個錯誤的,當使用某些系統垃圾清理優化工具、或其它一些因素可能會導致這個目錄權限發生 改變。所以請慎重使用此類工具。
解決辦法
一、檢查存放Microsoft Access數據庫文件的文件夾是否有對IIS匿名帳號有寫入權限,如果沒有,請賦於寫入權限,特別是當錯誤信息為(Microsoft JET Database Engine 錯誤 '80004005' 操作必須使用一個可更新的查詢。)時。
二、JET 引擎在鏈接數據庫的時候會在%windir%/temp/目錄下創建臨時文件,而IIS匿名帳號對%windir%/temp/目錄操作權限不夠,添加IIS匿名帳號(IUSR_計算機名)對%windir%/temp/的讀寫權限即可。
其它一些未指定的錯誤,可以嘗試重新注冊ASP腳本解釋鏈接庫文件。
依順序運行以下命令:
1.regsvr32 jscript.dll
2.regsvr32 vbscript.dll
3.iisreset