64位Windows7使用IIS7运行ASP+Access出现错误的原因是什么
说到在64位的Windows7系统里跑IIS7用Access数据库做后台,大家经常遇到那个让人头疼的“Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'”对吧?其实这是因为64位系统本身不支持那个叫Microsoft OLE DB Provider for Jet的驱动程序,也就是说用Microsoft Access Driver (*.mdb)来连接数据库玩不转了,直接挂掉!这就是为何你明明写了没错代码,却老提示“未指定错误”的罪魁祸首。还有超级重要的一点,有时候IIS没有权限去读取IE缓存或者系统的TEMP文件夹,这权限一不给,数据库连接就立刻炸锅,直接报错。

IIS7如何设置才能让ASP+Access程序顺利运行
要搞定这事儿,你得先做好以下几步,照着来,绝对不跑偏:
-
右键你的Default Web Site,选“高级设置”,调整网站的主目录和访问端口这些基本参数,别忘了这些细节直接影响网站跑不跑得起来。
-
访问权限千万别忘,尤其是TEMP文件夹和你网站的目录,必须给IIS账号加读写权限。要不然Access数据库那边就会“哔哩啪啦”报错。
-
应用程序池(Application Pool)一定要调成Classic .NET AppPool,这和默认的Default AppPool不一样,Classic模式才能支持老旧的Access数据库驱动。
-
IIS默认装好之后不要急着上线ASP程序,因为MS Jet数据库引擎默认把一些临时文件位置改了,但没给出权限,结果数据库访问失败。赶紧看看是不是临时目录没给权限。
-
IIS想调试ASP程序也要确保开启详细错误信息功能,这样出现任何错误就能在浏览器直接看到详细信息,方便你调试找问题。
-
如果你遇到像"磁盘或网络错误"这种,也多半是权限问题引起的,赶快检查一遍读写权限,尤其是IIS和系统两个地方,通通给够权限,才不会再报错。
-
想顺利写入数据库,就得把你網站目錄以及TEMP目录权限都设置得滴水不漏,权限不给全真的是要崩溃。

相关问题解答
- 为什么64位Win7系统中的IIS7不支持Access数据库连接方式?
哦,这个就是微软的老问题了,64位Win7的IIS7对Microsoft OLE DB Provider for Jet驱动直接不给力,因为这个驱动只支持32位程序。简而言之,Access数据库的驱动是老古董,只能在32位程序里跑,64位就会报错。所以你用默认的64位IIS会调用不到这个驱动,自然就连不上数据库咯。
- 如何给IIS中的TEMP文件夹设置合适权限避免数据库访问失败?
嘿,给IIS权限其实没那么难,在C盘的TEMP目录上,右键属性找到安全选项卡,给运行IIS的用户账号(比如IIS_IUSRS)添加“完全控制”权限就行。这样IIS才能往TEMP里写东西,不然数据库访问时MS Jet引擎动用临时文件就会失败,直接报错,真的超级烦!
- IIS7应用程序池该怎么设置才能保证ASP+Access能正常运行?
你一定要把应用程序池设成Classic .NET AppPool,千万别用默认的Default AppPool,那玩意是集成模式,不支持老旧的Jet数据库引擎。只要改成Classic,权限和运行环境都对接好了,ASP程序才能顺利操作Access数据库,不然就是报错、闪退。
- 遇到ASP+Access程序提示“未指定错误”时该如何排查?
别慌,这种“未指定错误”背后大多是权限不给力导致的。第一步,确认运行IIS的账户有没有对网站目录和系统TEMP目录的写权限。第二,检查IIS的错误信息输出设置,看有没有启用详细错误信息。第三,看看是不是使用了不兼容的应用程序池。把这些逐项调整好后,基本就能解决这个奇怪错误啦,简直省心不少!
发布评论