64位的IIS上运行不了Access数据库的解决办法

64位的IIS上运行不了Access数据库的解决办法

把64位的程序池驱动改成32位的就可以了。


今天在使用asp网站后台时发现在64bit windows2008下,访问数据库失败,报错驱动程序未安装。

网上绝大多数的方法都是到应用程序池的高级设置中,把允许32位程序启用,的确可以解决。这样就相当于程序使用32位的性能,那么升级操作系统升级服务器还有什么意义呢。

个人觉得更科学的方式是修改此asp代码里的连接字符串。

第一步,先安装驱动

Microsoft Access Database Engine 2010 Redistributable

http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=C06B8369-60DD-4B64-A44B-84B371EDE16D

如果系统已经安装office 2007应该不用安装该驱动

 

第二步 修改连接

原来连接

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=1.xls;Extended Properties="Excel 8.0;HDR=YES;IMEX=1"

修改为:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=1.xls;Extended Properties="Excel 12.0;HDR=YES;IMEX=1"

 

ConnStrpub = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Server.MapPath("/")+"/News/Db/News.mdb"

 

jet驱动只有32位的,要在64位系统上使用的话只能使用wow64

开启关闭wow64可以通过iis站点高级属性里面启用32位应用程序选项

ace分为32位和64位,如果在64位系统上运行32位版本也需要用wow64,

如果在64位系统上运行64位驱动,则必须把wow64关掉