自從裝了Vista(64位),問題就一個一個來。現在就連IIS(7.0.0.0)裡運作一個簡單的ASP程式都出問題了。在開始正文之前,我想糾正一些錯誤認識:
-
Vista + IIS7支援Asp+Access無需更改應用程式池。
以我自己的實踐證明,使用預設的DefaultAppPool即可,你甚至可以停用Classic.NET AppPool。
-
Windows Vista™ Enterprice版本同樣含有IIS,當然也可以安裝IIS。
Windows Vista™ Enterprice:這個版本在Windows Vista™ Business的基礎上增加支援MUI(多語言包),BitLocker和UNIX應用程式支援。這個版本并不準備零售,僅OEM提供給使用者。我正使用的系統即是Windows Vista™ Enterprice,其功能是大于Windows Vista™ Business的。
閑話休叙,我們來看看問題和解決方法吧:
Q1:我的系統裡面沒有IIS?
A:系統預設是沒有安裝IIS的,需要你手動安裝。
依次打開:控制台/程式/程式和功能,選擇我們需要的功能。

Q2:我通路添加的網站,傳回了“An error occurred on the server when processing the URL. Please contact the system administrator”錯誤?
A:這個是因為你的程式某處有錯誤而産生的。并且IIS沒有傳回具體産生錯誤的原因。
需要在IIS中設定一下:
- 在左側的目錄樹中選擇你的網站,在右邊的IIS分類下,找到并打開“ASP”:
Vista(64位)作業系統+IIS7設定常見問題 - 展開“編譯/調試屬性”并設定“将錯誤發送到浏覽器”為True(同時請注意将“啟用父路徑”選擇為True)
Vista(64位)作業系統+IIS7設定常見問題
Q3:我又有了新的問題:“不允許的父路徑”
A:(見Q2)
Q4:“未指定提供程式,也沒有指派的預設提供程式。”
A:這是由于你的系統是64位的,而64位作業系統不支援Microsoft OLE DB Provider for Jet驅動程式,也不支援更早的Microsoft Access Driver (*.mdb)方式連接配接。
Microsoft網站有如下說明:(見:http://msdn2.microsoft.com/zh-cn/library/ms141766.aspx)
用于 Access 和 Excel 資料庫的 Microsoft OLE DB Provider for Jet 在 64 位版本中不可用。也就是說,如下兩種連接配接字元串都已經無法正常工作了:
“Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.mappath(db)"driver=Microsoft Access Driver (*.mdb);DBQ="&Server.MapPath(db) 是以,我們不得不修改IIS運作環境為32位:
另,SQL資料連接配接則可以在64位機上運作,連結字元串為:
"PROVIDER=SQLOLEDB;DATA SOURCE="&SqlLocalName&";UID="&SqlUsername&";PWD="&SqlPassword&";DATABASE="&SqlDatabaseName
Q5:“磁盤或網絡錯誤”或“未指定的錯誤”
Microsoft JET Database Engine 錯誤 '80004005'
未指定的錯誤Microsoft OLE DB Provider for ODBC Drivers 錯誤 '80004005'
[Microsoft][ODBC Microsoft Access 驅動程式] 磁盤或網絡錯誤。
A:産生這樣的錯誤是由于IIS沒有讀取IE緩存的權限而引起的。(錯誤取決于你使用哪種方式連接配接Access資料庫)隻需設定緩存目錄的權限即可:
-
打開檔案夾:(注意,AppData 檔案夾是隐藏檔案夾)
C:/Windows/ServiceProfiles/NetworkService/AppData/Local/
- 在Temp上點選右鍵,依次點選“屬性”、“安全”、“編輯”、“添加”,然後輸入“Authenticated Users”并點選确定。然後在Authenticated Users的權限裡面,設定“完全控制”和“修改”的權限。
Vista(64位)作業系統+IIS7設定常見問題
Q6:Q4、Q5的問題我都解決了,但仍然提示錯誤
A:此時,估計你的Access驅動已經損壞,需要重新安裝或者重新注冊msadds.dll(OLE DB Data Shape)提供程式了。
在運作裡面輸入下面的指令即可:
(64位系統的指令)REGSVR32 "C:/Program Files (x86)/Common Files/System/Ole DB/MSDASQL.DLL" (附:32位的指令)REGSVR32 "C:/Program Files/Common Files/System/ole db/MSDASQL.DLL"