寫在前面:
都是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的權限設定方面的問題