寫在前面:
都是XP惹的禍.個人認為XP過度的追求安全性,而以具體功能無法實現作為代償.下面來看看這個ASP例子,相信經常接觸ASP的人會時常碰到這個問題:明明自己的代碼寫的非常正確,為什麼就是不能正常更新呢?以下幾個錯誤信息不是因為ASP本身的代碼錯誤導致的,而是一些權限的設置問題.開始我碰到這個問題的時候,曾經自習檢查自己代碼不下10遍,就是沒檢查出ASP的錯誤來.最後上網查了查才發現是萬惡的權限作祟.
運行環境:windows xp
IIS 5.0
--------------------------------------------------------------------
在Windows XP+IIS服務器上運行asp程序可能會出現數據庫無法更新的情況,具體錯誤信息可能為:
1、Microsoft JET Database Engine (0x80040E09) 不能更新。數據庫或對象為只讀
2、Microsoft OLE DB Provider for ODBC Drivers (0x80004005)[Microsoft][ODBC Microsoft Access Driver] 操作必須使用一個可更新的查詢。
3、Microsoft JET Database Engine (0x80004005) 操作必須使用一個可更新的查詢。
解決辦法有以下幾種(針對不同的服務器可能解決辦法不一樣,在這裡假設網站主目錄為wwwroot):
A、在wwwroot文件夾上面點擊右鍵-“屬性”-取消“只讀”
此方法最簡單、偶爾有效
B、在您的數據庫文件上文件夾上面點擊右鍵-“屬性”-“安全”-添加用戶:“IUSR_計算機名” 並開放“IUSR_計算機名”的讀取、寫入權限
此方法是目前解決這個問題最好的辦法,一般都可以解決問題
XP系統下可能點擊右鍵看不到“安全”選項,請先打開“工具”-“文件夾選項”-“查看”-取消“使用簡單文件共享(推薦)” 然後即可在屬性中找到“安全”選項
C、在wwwroot文件夾上面點擊右鍵-“屬性”-“web共享”-“共享文件夾”
D.更多解決方法請大家和我一起討論咯~QQ:7021357
--------------------------------------------------------------------
最後一點就是,如果想把自己的機器設置成調試ASP的服務器,那麼最好不要使用win XP系統,選用WIN 2000為宜,實在不行...那麼就做好走很多彎路的准備吧!....
當然了,在XP出現莫名其妙的問題的時候,請多考慮下XP的權限設置方面的問題