2
我有一個簡單的程序來測試使用ADODB打開連接到excel文件。 這是使用VBScript的ASP Classic。 下面是代碼:在Windows 7上ADODB連接失敗,但不是XP
<%@ Language="VBScript" %>
<% Response.buffer = true %>
<html>
<body>
<%
'Name of the excel file
exceldb="AW_Test.xls"
excel_file_name=Server.MapPath(exceldb)
response.write(excel_file_name)
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open "Driver={Microsoft Excel Driver (*.xls)}; DriverId=790; DBQ=" &excel_file_name & ";"
cn.Close
Set cn=Nothing
Response.Write("All is good in the world...")
%>
</body>
</html>
當試圖在這個配置下運行:
- 64位Windows 7
- IIS 7
- 應用程序池在32位模式下
- 文件中根目錄
- 在本地主機上運行[http://localhost/adotest.asp]
我得到如下結果:
C:\inetpub\wwwroot\AW_Test.xls
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Excel Driver] The Microsoft Jet database engine cannot open the file '(unknown)'. It is already opened exclusively by another user, or you need permission to view its data.
/adotest2.asp, line 13
然而,在同一臺機器上這種配置下:
- 在XP模式的虛擬PC
- IIS 6個
- 文件中根目錄
- 在本地主機上運行[http://localhost/adotest.asp]
我得到如下結果:
c:\inetpub\wwwroot\AW_Test.xls
All is good in the world...
事情我已經驗證/試:
- 驗證權限(注意,這是根目錄)
使用Jet嘗試引擎改爲
cn.Open 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\WWWRoot\AW_Test.xls;Extended Properties="Excel 8.0;HDR=No"'
遇到錯誤:
C:\inetpub\wwwroot\AW_Test.xls
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
/adotest3.asp, line 13
- 驗證在32位模式下運行的所有應用程序池
- 驗證的驅動程序在數據源的SYSWOW並存
我相信我失去了一些東西簡單但是,我想要嘗試的東西。 我知道還有比ASP經典等更好的方法,但是,這應該仍然工作......
我感謝所有幫助...
請檢查接受的答案在這:http://forums.iis.net/t/1174099.aspx。 – SearchAndResQ