最近帮朋友装个服务器系统环境,系统是Windows server 2008 R2 64位系统。把ASP和PHP环境配置好以后,发现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管理器,查看网站的高级属性
应用程序池选项,记住当前使用的应用程序池名称。
也可以在这里直接修改使用的应用程序池。强调一下,无论使用哪个应用程序池都是可以成功启用Access的
——————————————————————————————————
返回,点击左边应用程序池节点,查看刚才使用的应用程序池的高级属性(这里是DafaultAppPool)
启用32位应用程序选项设为True
IIS的设置到此结束
接下来修改一些access临时要用的文件夹访问权限
C:\Windows\temp (典型路径,请根据实际安装路径确定)Users的可读写权限 (我开始的在应用程序池里设置了32位兼容运行,但是还显示错误。这个文件夹设置权限后就正常了。)
C:\Windows\ServiceProfiles\NetworkService\AppDataLocal\Temp
给上面两个文件夹添加Users的可读写权限
如果还不足够,继续给C:\Inetpub\wwwroot\Data(网站数据库、后台文件夹)添加Users的可读写权限。
未经允许不得转载:王超博客 » Windows Server 2008 64位系统服务器ASP程序-2147467259错误解决方法