Windows2008 64位系统asp连接access数据库-2147467259错误解决方法

来源:互联网 发布:sql查询分析器要联网吗 编辑:程序博客网 时间:2024/06/03 14:53

最近买了个阿里云,装了个Windows2008 R2 64位系统。把ASP环境配置好以后,发现不能正常访问网站。提示错误号是“-2147467259”。上网搜索了资料搞了半天终于解决了。

主要是二个大原因:

1、是64位系统的原因,ACCESS要32位 

2、文件夹权限问题  (下面是整理的资料)

有个奇怪的现象,在GOOGLE里搜索错误号“-2147467259”,是找不到相关结果的。

因为微软要放弃access了,所以就没开发access数据库64位的.如果你的win7是64位,同样也不能支持access.

说到这里其实大家就知道为啥 64位 windows2008 R2 版本不支持access原因了.因为access只有64位,但windows2008 r2 64位默认程序都是64位的.由于Win R2是64位系统。在用IIS测试ASP网站时,连接数据库代码总是不成功。

"Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&Server.mappath(db)用这种方式时返回“3706错误值

"Driver=Microsoft Access Driver(*.mdb);DBQ="&Server.MapPath(db)用这种方式时返回“-2147467259”错误值。
因为Win2008 R2 是64位操作系統。而64位操作系统不支持Microsoft OLE DBProvider for Jet驱动程序,也不支持更早的Microsoft Access Driver(*.mdb)方式连接。所以用于 Access 和 Excel 数据库的 Microsoft OLE DB Provider forJet 在 64 位版本中不可用,也就是说,如下两种连接字符串都已经无法正常工作了:

"Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&Server.mappath(db)。

"driver=Microsoft Access Driver(*.mdb);DBQ="&Server.MapPath(db)。


解决方法:
打开IIS管理器,查看网站的高级属性
201105192238207347.gif


应用程序池选项,记住当前使用的应用程序池名称。
201105192238441710.gif


也可以在这里直接修改使用的应用程序池。强调一下,无论使用哪个应用程序池都是可以成功启用Access的
------------------------------------------------------------------------------------------------------
201105192239347167.gif


返回,点击左边应用程序池节点,查看刚才使用的应用程序池的高级属性(这里是DafaultAppPool)
201105192239454824.gif


启用32位应用程序选项设为True
IIS的设置到此结束

接下来修改一些access临时要用的文件夹访问权限
C:\Windows\temp (典型路径,请根据实际安装路径确定)Users的可读写权限   (我开始的在应用程序池里设置了32位兼容运行,但是还显示错误。这个文件夹设置权限后就正常了, QQ:1508496092.有问题可以交流哦。)
C:\Windows\ServiceProfiles\NetworkService\AppDataLocal\Temp
给上面两个文件夹添加Users的可读写权限

如果还不足够,继续给C:\Inetpub\wwwroot\App_Data添加Users的可读写权限

参考资料:http://www.cnblogs.com/starxp/articles/2298013.html

http://blog.sina.com.cn/s/blog_4d6e44860101cxgh.html

原创粉丝点击