刚买了个服务器支持64位的Windows2003于是想爽一下,装IIS6,只能装64位的NET frameWork
在XP32位下用VS2005发布两个网站:
A、基于于SQL2000
B、基于Office Access
在服务器配置完毕后,A站正常运行,很爽。B站报错,意思于法连接到数据库,郁闷很久。
思考:今天网友提示64位IIS对Ole的支持问题。
由于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位:
IIS6上的做法:
1.命令行键入:
cscript.exe %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
即设置IIS6允许32位程序运行在64位机器上
2.重新注册.net frameWorks
%SYSTEMROOT%\Microsoft.NET\framework\v2.0.50727\aspnet_regiis.exe -i
3.完成之后,看Web服务扩展,应该会多出一个32位的asp.net将其设置为允许,缺点:这样会使整个IIS上的所有站点都以32位兼容方式运行 。
IIS7上的做法要简单很多:
应用程序池,高级设置-->允许32位应用程序
运行IIS6,运行.net+Access网站看看是否解决
后续:如果还有问题,比如Service Unavailable,恭喜你,你可以学到新知识了。很讨厌,看一下错误日志,我遇到的是RpcProxy.dll无法加载和无法加载站点/服务的所有 ISAPI 筛选器错误。解决方法:打开iis-->查看“网站”的属性--->ISAPI 筛选器-->把有向下的红箭头的项删除掉-->重启iis-->OK 。至此全解决。
以上是IIS 6 设置
以下是IIS7 设置方法
使用Win8下的IIS8来调试一个ASP程序,运行出现如下错误:ADODB.Connection 错误 '800a0e7a' 未找到提供程序。该程序可能未正确安装。
使用Win8下的IIS8来调试一个ASP程序,运行出现如下错误:
ADODB.Connection 错误 '800a0e7a'
未找到提供程序。该程序可能未正确安装。
/admi_datalink.asp,行 5
发现竟然是64位系统设置的问题,解决办法非常简单:
1、打开IIS,点击“应用程序池”,找到操作下面的“设置应用程序池默认设置”(如图);
2、将“应用程序池默认设置”中的“启用32位应用程序”设置为“True”(如图);
这样就消除了800a0e7a错误。
使用Win8下的IIS8来调试一个ASP程序,运行出现如下错误:ADODB.Connection 错误 '800a0e7a' 未找到提供程序。该程序可能未正确安装。
使用Win8下的IIS8来调试一个ASP程序,运行出现如下错误:
ADODB.Connection 错误 '800a0e7a'
未找到提供程序。该程序可能未正确安装。
/admi_datalink.asp,行 5
刚买了个服务器支持64位的Windows2003于是想爽一下,装IIS6,只能装64位的NET frameWork 在XP32位下用VS2005发布两个网站:A、基于于SQL2000B、基于Office Access 在服务器配置完毕后,A站正常运行,很爽。B站报错,意思于法连接到数据库,郁闷很久。 思考:今天网友提示64位IIS对Ole的支持问题。