在WIN7 X64系统或其它WINDOWS X64系统的IIS,使用JET连接不上ACCESS数据,
常见错误提示:
ADODB.Connection 错误 '800a0e7a',未找到提供程序。该程序可能未正确安装。
或
Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'
[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
原因是没有64位系统的JET驱动。
解决方法一:
开始 – 运行 – 输入”cmd” ,键入以下命令启用IIS的32 位模式:
(1)如果是IIS6
cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
(2)如果是IIS7:
appcmd list apppool /xml | appcmd set apppool /in /enable32BitAppOnWin64:true
注意:
APPcmd.exe 位于 C:\Windows\System32\inetsrv 目录
使用 Cd c:\Windows\System32\inetsrv 切换到该目录,
如果不切换会提示APPcmd不是内部或外部命令,也不是可以运行的程序,或批处理文件。
解决方法二:
修改应用程序池的“高级设置”。
打开IIS管理器,点击左边的“应用程序池”,在视图中右键DefaultAppPool或你网站的独立应用程序池名字,选择高级设置,修改如下图:
把启用32位应用程序设为True.
解记方法三:
使用新版本的数据驱动
下载安装:Microsoft Access Database Engine 2010 Redistributable for x64
修改连接字符串:
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=;User ID=;Password=;
Data Source\User ID\Password按照实际情况设置。
但ACE和Jet的数据驱动是有差别的,经测试某些程序需要修改,但也不知道怎样改,这方法并不算好。
推荐使用第二种方法,注意你的网站是否是独立的应用程序池,
如果是,修改默认的应用程序池没有作用,需要修改该网站名称的应用程序池。