服务器升级到Server 2016,有一些在旧平台上开发的web应用需要迁移过来。
其中有一个ASP+ACCESS开发的小应用,迁移到Server 2016后,访问时报告“ADODB.Connection 错误 '800a0e7a'”。
问题显而易见,是新的Server 2016上没有安装数据库驱动导致的。
这个web应用之前工作在Server 2008 R2上,也是x64的系统环境,看了一下conn.asp里面的连接字串是这么写的:
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.provider="microsoft.ACE.oledb.12.0;Jet OLEDB:Database Password="
ConnStr = Server.MapPath("" & "db.accdb" & "")
Conn.Opeo ConnStr
microsoft.ACE.oledb.12.0 ,那么这应该是调用了“Microsoft Access Database Engine 2007”。
查了一下,Microsoft Access Database Engine已经有2016版了。下载地址如下:
https://www.microsoft.com/en-us/download/details.aspx?id=54920
安装后,修改连接字串,即可正常工作:
Conn.provider="microsoft.ACE.oledb.16.0;Jet OLEDB:Database Password="
注:IIS 10默认安装不包含ASP功能支持,添加功能角色时注意勾选。
==========sp1==========
在Server 2016上使用Access Database Engine2016可能出现各种奇怪的故障,如查询时间变慢、IIS进程崩溃等。
如果遇到这些问题,请使用ADE2010 x64版本。详见:https://blog.csdn.net/robur/article/details/82660017