2013-06-26 84 views
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經典等更好的方法,但是,這應該仍然工作......

我感謝所有幫助...

+0

請檢查接受的答案在這:http://forums.iis.net/t/1174099.aspx。 – SearchAndResQ

回答

0

嘗試用剛:

cn.Open "Driver={Microsoft Excel Driver (*.xls)}; DBQ=" &excel_file_name & ";" 

它應該工作..

+0

完全相同的錯誤... –

相關問題