x64系统下IIS7工作异常的问题
(记于LBS架构时的《天雷の領域》)
今天好不容易装好x64的Vista,IIS7也工作正常,偏偏asp执行的时候DB Connection failure.
这个鬼错误连个错误号也没有……只能到网上随便Google……
结果google到一堆都说是权限问题……
要给什么C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp加上everyone权限……
怎么想都觉得不对劲……权限出错一般不是会报403么……
没办法,后来把webroot的所有权也夺了,权限也改了……连两个TMP环境变量我都给权限了……
还是不行……
又到英文论坛逛逛……说注册几个dll……试了,还是不行……
后来又看到篇odbcad32.exe在system32和syswow64下各有一个的文章……不知所云……
最后……终于让我从一位叫做HeTaoOS的程序员的blog上找到了解决方案。
这是由于系统是64位的,而64位操作系统不支持Microsoft OLE DB Provider for Jet驱动程序,也不支持更早的Microsoft Access Driver (.mdb)方式连接。
用于 Access 和 Excel 数据库的 Microsoft OLE DB Provider for Jet 在 64 位版本中不可用。
也就是说,如下两种连接字符串都已经无法正常工作了:
“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=”&Server.mappath(db)
“driver=Microsoft Access Driver (.mdb);DBQ=”&Server.MapPath(db)
因此,我们不得不修改IIS运行环境为32位: