Windows 7(64位)上的IIS 7和Ms Access 2007 32位

时间:2014-10-30 05:42:30

标签: iis vbscript asp-classic ms-access-2007

系统信息:
Windows专业版。 64位。
IIS 7.0
Office 2007女士32位(来自任务经理)
没有Visual Studio 运行经典ASP

需要连接MS Access 2007数据库。

<%
    Dim objCon
    Dim objRec
    Dim objSql
    Set objCon = Server.CreateObject("ADODB.Connection")
    objCon.Open "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & Server.MapPath("db/dbTest.accdb")
    Set objRec = Server.CreateObject("ADODB.Recordset")     
    objSql = "select * from tblLogin;"  
    objRec.Open objSql, objCon
    Do While not objRec.EOF
        Response.Write ("<br>")
        Response.Write (objRec("uid")) 
        Loop    
    %>

在.asp文件中使用上面的代码。

错误消息:处理URL时服务器上发生错误。 请联系系统管理员。 如果您是系统管理员,请单击此处以了解有关此错误的更多信息。

我做了什么:
以上链接信息。
在IIS管理器中启用32位应用程序 在64 iis上启用32位应用程序 cscript%SYSTEMDRIVE%\ inetpub \ adminscripts \ adsutil.vbs SET W3SVC / AppPools / Enable32bitAppOnWin64 1
使用下面的选项手动选择.accdb(这是正确的方法吗?) %WINDIR%\ SysWow64资料\ odbcad32.exe的

1 个答案:

答案 0 :(得分:1)

如果是Access 2003或更早版本,则数据库的扩展名为.mdb,而不是.accdb

使用JET OLEDB驱动程序

PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" & Server.Mappath("db/dbTest.mdb") 

JET是32位,因此您需要启用32位应用程序

对于Access 2007以上,请根据您的示例使用ACE驱动程序。 ACE是64位,因此您不需要启用32位应用程序,实际上您可能需要禁用它们 - IIS似乎是/或在这些情况下