64位win7系统IIS7运行Access数据库时出错的原因是什么
其实吧,咱们遇到64位Windows 7系统用IIS7跑基于Access数据库的ASP程序时,老是蹦出“Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'”,根本原因是64位操作系统不支持微软那套Jet驱动程序,也就是说,它不认通过Microsoft Access Driver (*.mdb)方式连接数据库,直接导致连接失败,简直让人头大。
而且网上下载的某些ASP系统也是这个原因,数据库找不到对应的数据源名称,或者没指定默认驱动程序,干脆就连不上,程序直接报错。不过放心,这问题虽然坑,但都能被我们玩转,咱们稍后具体描述那些妙招。

怎么解决IIS7中运行ASP+Access出现的各种常见错误
先别激动,慢慢来,给大家道道具体步骤和超实用的Tips:
-
开启32位应用支持
打开IIS管理器,找到服务器的应用程序池,选中你运行ASP的那个池子,点“基本设置”,把“启用32位应用程序”改成True。这一步非常关键,64位机器默认不支持Access的驱动,开了这个才让旧版数据库跑起来。 -
赋予临时目录权限
Access数据库操作需要往临时文件夹写写东西,这个目录在64位Win7上变了,通常是C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp,一定要给这个文件夹足够的读写权限,没权限瞬间数据库连接报错。 -
应用程序池设置调整
把应用程序池从默认的DefaultAppPool改成Classic .NET AppPool,这能解决部分asp页面无法正确执行的问题,特别是兼容性方面。 -
修复404.3错误(HTTP错误)
如果遇到404.3,说明IIS没有正确处理ASP请求,不用慌,打开Visual Studio命令行 (或者管理员CMD窗口),运行命令aspnet_regiis.exe -i,这步骤会帮你注册ASP.NET相关组件,搞定这个报错。 -
确保ASP功能被安装和启用
Windows自带的IIS不一定默认开启ASP支持,检查“控制面板 -> 程序和功能 -> 打开或关闭Windows功能”,确认“ASP”被勾选,否则你ASP代码根本不会跑。 -
调整响应缓冲区及脚本超时
如果碰到ASP 0251 : 80004005那种缓冲区错误,可以适当减少数据库循环次数,或者修改IIS中脚本超时,别盲目加时间,容易堵塞服务器。
综上所述,以上这些步骤帮你彻底搞定64位Win7 IIS7下用Access的各种坑,excel少年必备,动动手,轻松甩开报错,网站顺溜滴很!

相关问题解答
-
为什么64位win7 IIS7运行Access数据库会报80004005错误?
哎呀,说白了,64位系统不太给力,不支持微软的那个Jet驱动,也就是说它无法用老旧的Access数据库驱动连接数据库。你得开启应用程序池的32位模式,给临时目录授权,这两步不搞清楚,老报错没跑儿哦! -
怎样快速解决IIS7中的404.3 HTTP 错误?
这个错误通常是ASP没注册好。你只要找到Visual Studio的命令提示符(管理员身份),运行aspnet_regiis.exe -i,这命令是神器,立马帮你注册ASP运行环境。操作很简单,别忘了用管理员权限打开命令行,复制粘贴一条龙! -
给临时目录权限有什么必要?
Access数据库很“粘人”,它爱在临时文件夹里搞事情,如果那个目录没给网络服务帐户(NetworkService)或系统账户写入权限,程序就崩了,连接不上数据库。给C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp权限,保准数据库通通顺顺溜溜! -
为什么要把应用程序池改成Classic .NET AppPool?
默认的DefaultAppPool对老ASP支持没那么友好,Classic模式相对传统,跟老旧ASP代码兼容性更强,会让你碰不到奇怪的错误。调整这个设置,基本上就像给程序穿了双舒服鞋,跑得稳了,错得少了。
新增评论