Windows 7(64位)上的IIS 7和Ms Access 32位32位
问题描述:
系统信息:
Windows Professional。 64位。
IIS 7.0
Office 2007 32位(来自任务管理器)
否Visual Studio。
运行经典ASPWindows 7(64位)上的IIS 7和Ms Access 32位32位
需要连接到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
启用32位应用程序IIS
CSCRIPT%SYSTEMDRIVE%\的Inetpub \ adminscripts \ adsutil.vbs设置SVC/AppPools/Enable32bitAppOnWin64 1
使用以下选项来手动选择.ACCDB(它是正确的方法?) %WINDIR %\ Syswow64资料\ odbcad32.exe的
答
如果是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似乎是/或在这些情况下
哦!但数据库是在MS Accesss 2007 fomrat(.accdb)中。那么供应商会是什么? – msinfo 2014-10-31 06:53:26
我假设你正在谈论在旧版Access中创建的数据库。请参阅http://office.microsoft.com/en-gb/access-help/convert-a-database-to-the-accdb-file-format-HA010341552.aspx。如果它具有accdb扩展名,则ACE是要使用的驱动程序。 ACE实际上是一个64位驱动程序,所以你应该禁用32位应用程序。此外,如果您不知道,JET驱动程序附带Win 7 Pro,但您需要安装ACE – John 2014-10-31 11:42:44
或者,您可以使用旧的mdb格式保存数据库副本 – John 2014-10-31 11:48:36