您的位置:首页 > 编程语言 > ASP

在 Windows 2003 64位 下ASP无法连接Access数据库的问题

2008-05-21 13:55 337 查看



在 Windows 2003 64位 下ASP无法连接Access数据库的问题


| |


[

2007年8月13日 22:57 | by gs ]

前几天安装好了 Windows 2003 64bit RC2 以后,昨天把小樱之町的数据转移了过来。本想用这台机子来测试YT的流量的,但是却遇到了一个很麻烦的问题。

首先我自然是打开YT论坛的首页,但是这个时候却出现了我自定义的数据库连接错误页面,错误描述是未找到提供程序。该程序可能未正确安装。偶汗个,一开始还不知道是什么问题,接着仔细一想,好像是JET引擎的问题嘛。我打开管理工具里面的“数据源(ODBC)”,看到里面的用户DSN虽然有对mdb数据库的支持,但是试图对其进行配置的时候却显示“找不到ODBC驱动的安装例程”,这样子看来应该是JET的ODBC驱动没有安装。转到“驱动程序”选项卡一看,果然没有JET引擎。我就想去微软的网站下载,可是在微软那找来找去就是找不到这个驱动。没办法了,只好百度一下看看别人有没有解决办法。

百度过后果然发现了一个办法,就是让IIS以32位的方式运行,只要在命令行输入一下命令

cscript C:\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1

之后IIS就会以32位方式来运行了。因为JET引擎实际上是存在的,但它是32位的,与64位的IIS兼容性有问题,于是64位的IIS就无法认出来,显示的错误就是找不到JET引擎。

可是我按照这个方法来设置以后再访问,却显示 Service Unavailable(樱町经典错误啊 = =||)。一直刷新一直都是SU(Service Unavailable),我猜可能与应用程序池有关,于是我就查看应用程序池的设置,最后发现,只要禁用“启用快速失败保护”就不会出现SU了,但是这样网页还是不能显示出来,页面一直是一片空白。这是我想看看w3wp.exe占用了多少资源,可能能从中发现什么问题,于是就打开了任务管理器想查看w3wp.exe的资源占用情况。可打开了任务管理器以后,我却发现了不止一个w3wp.exe进程,仔细看了看,原来是w3wp.exe频繁地生成然后又结束,这在任务管理器中就显示成了几个进程。我就猜想,应该是有什么东西阻碍了w3wp.exe的正常启动,而如果启用了“启用快速失败保护”的话,在分钟内w3wp.exe非正常停止的次数肯定会超过5次,于是应用程序池就被自动禁止,网站就SU了。真是令人郁闷。

没办法了,只好继续问搜索引擎,问了百度没有结果,再去问谷歌。在谷歌那里我找到了一篇英文文章,中文文章都已经看过了,只好看看英文的了,虽然很难看懂。这篇文章大概的意思是说,64位的IIS无法加载32位的ASP.Net模块,32位的IIS也无法加载64位的ASP.Net模块,看到这里我突然想到,会不会是因为把IIS设为以32位方式运行后,其ASP.Net扩展还是64位的而无法启动呢?我一查看,果然加载的是64位的ASP.Net模块。于是我把加载64位的ASP.Net扩展改成加载32位的ASP.Net扩展以后,重启IIS,终于讨厌的“未找到提供程序……”的错误没有了!

不过错误还没完,这回显示的错误是“操作必须使用一个可更新的查询”。这个……老问题了嘛,不就是数据库没有写权限嘛。把写权限给数据库文件加上,刷新,樱町的首页就出现在眼前了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐