當您要求的 ASP 頁面,錯誤訊息連接到 Access 資料庫中 IIS 7.0: 「 Microsoft JET 資料庫引擎錯誤 80004005'"

文章翻譯 文章翻譯
文章編號: 926939 - 檢視此文章適用的產品。
重要本文將告訴您,如何協助較低的安全性設定或如何關閉電腦上的安全性功能的資訊。您可以進行這些變更,解決特定問題。進行這些變更之前,我們建議您先評估在特定環境中實作這項因應措施相關聯的風險。如果您要實作這項因應措施,採用任何其他的適當步驟,以協助保護電腦。
全部展開 | 全部摺疊

徵狀

考慮下列案例。在 Web 伺服器正在執行 Microsoft 網際網路資訊服務 (IIS) 7.0 上, 主機連接到資料庫的作用中的伺服器網頁 (ASP)。ASP 網頁資料提供者是 Microsoft.Jet.OLEDB.4.0 資料提供者。ASP 頁面資料來源是 Microsoft Access 資料庫 (.mdb) 檔案。在這種情況下可能會收到下列錯誤訊息,當您要求 ASP 網頁:
Microsoft JET 資料庫引擎錯誤 80004005'
未指定的錯誤
附註當您使用下列兩個動作時,就會發生類似的錯誤訊息:
  • Microsoft Access 資料庫中,Access 2007 檔案格式 (.accdb)
  • Microsoft.ACE.OLEDB.12.0 資料提供者

發生的原因

如果 IIS 7.0 設定為 [載入應用程式集區識別目前的使用者設定檔,可能就會發生這個問題。因為目前的使用者可能沒有足夠的權限可寫入暫存目錄,這可能導致與舊版的 ASP 應用程式和 ADO 架構的應用程式相容性問題。

解決方案

如果要解決這個問題,您必須新增至暫存目錄的處理序識別正確的存取控制項目。如果要執行這項操作,依照您的作業系統。

Windows Server 2008 與 Windows Vista SP1 或更新版本

如果要解決這個問題,在 Windows Server 2008 或與 SP1 或更新版本的 Windows Vista 執行的 IIS 7.0 Web 伺服器上,請依照下列步驟執行:
  1. 按一下 [開始],按一下 [所有程式]、 都按一下 [附屬應用程式、 用滑鼠右鍵按一下 命令提示字元],然後再都按一下 [以系統管理員身分執行]
  2. 當您接到針對系統管理員密碼或確認訊息時, 輸入密碼,或按一下 [繼續]。
  3. 輸入下列命令並按下 ENTER:
    icacls %SystemDrive%\Windows\Temp /grant Users:(CI)(S、 WD、 AD,X)

    附註這個命令可讓每位使用者在暫存目錄中建立檔案和目錄。
  4. 輸入下列命令並按下 ENTER:
    icacls %SystemDrive%\Windows\Temp /grant 」 建立者 OWNER":(OI)(CI)(IO)(F)

    附註使用者在暫存目錄中建立一個檔案或目錄,是建立者擁有者。建立者擁有者的存取控制項目授與使用者完成控制項透過目錄或檔案上。其他使用者無法存取這些檔案和目錄,因為它們不是建立者擁有者。
Windows Vista RTM

如果要解決這個問題在 Windows Vista RTM 執行的 IIS 7.0 Web 伺服器上,請依照下列步驟執行:
附註預設上 Windows Vista RTM,處理序識別身份是 NetworkService,且暫存目錄是 %windir%\ServiceProfiles\NetworkService\AppData\Local\Temp]。
  1. 按一下 [開始],按一下 [所有程式]、 都按一下 [附屬應用程式、 用滑鼠右鍵按一下 命令提示字元],然後再都按一下 [以系統管理員身分執行]
  2. 當您接到針對系統管理員密碼或確認訊息時, 輸入密碼,或按一下 [繼續]。
  3. 輸入下列命令並按下 ENTER:
    icacls %windir%\serviceprofiles\networkservice\AppData\Local\Temp /grant Users:(CI)(S、 WD、 AD,X)

    附註這個命令可讓每位使用者在暫存目錄中建立檔案和目錄。
  4. 輸入下列命令並按下 ENTER:
    icacls %windir%\serviceprofiles\networkservice\AppData\Local\Temp /grant 」 建立者 OWNER":(OI)(CI)(IO)(F)

    附註使用者在暫存目錄中建立一個檔案或目錄,是建立者擁有者。建立者擁有者的存取控制項目授與使用者完成對該檔案或目錄控制。其他使用者無法存取這些檔案和目錄,因為它們不是建立者擁有者。

其他可行方案

如果要解決這個問題,請在 < 解決方案 > 一節中使用方法所述。不過,如果您不想將存取控制項目加入至處理序識別身份的暫存目錄,您可以解決問題藉由停用應用程式集區 loadUserProfile 屬性。停用這個屬性時,IIS 7.0 就不會載入應用程式集區目前的使用者設定檔。

重要如果您停用這個屬性時,可能會建立安全性風險。請確定您瞭解並評估風險之前您實作這項因應措施。

若要停用應用程式集區 loadUserProfile 屬性,修改 ApplicationHost.config 檔案。下列範例示範如何執行這項操作
<applicationPoolDefaults>
    <processModel identityType="NetworkService" loadUserProfile="false" />
</applicationPoolDefaults> 

?考

如需有關暫存目錄權限在 ASP 網頁中執行資料庫查詢時按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
315456當您連線到資料庫從 ASP 網頁在 FrontPage 中時,收到 「 資料庫結果 」 錯誤訊息
使用典型的 ASP 和 IIS 7.0 和 IIS 7.5 上的 Microsoft Access 資料庫
http://learn.iis.net/page.aspx/563/using-classic-asp-with-microsoft-access-databases-on-iis-70-and-iis-75/

屬性

文章編號: 926939 - 上次校閱: 2009年3月12日 - 版次: 4.0
這篇文章中的資訊適用於:
  • Microsoft Internet Information Services 7.0
關鍵字:?
kbmt kbtshoot kbprb KB926939 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:926939
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com