Microsoft.Jet.OLEDB.4.0相信大部分同学都很熟悉,用可以十分方便连接Access数据、Excel文件,但是昨天在部署网站时遇到了一点麻烦。
当我在IIS里附加了网站以后,IIS显示错误信息“未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序”,多方查找资料,才发现学校的那台服务器是64位,而Microsoft.Jet.OLEDB.4.0只能在32位环境下运行。
网上有很多关于在64位IIS运行32位程序的方法,其中最简单的是IIS7的设置,只要在对应的 IIS 应用程序池中,“设置应用程序池默认属性”/“常规”/”启用32位应用程序”,设置为 true。可惜学校的那台服务器跑的是2003 R2+IIS6的,这个就麻烦。
这里最简单、最可靠的解决方法是在编译网站时选择“生成->配置管理器->平台->点击Any Cpu选项卡->新建->新建平台->X86”。
如果没有VS平台,上面的方法岂不是没有用了,别急,我们还可以用控制台命令强制32位应用在64位IIS下运行,但是这可能会影响正常的Web应用程序运行(还好我没遇到,那台服务器上直挂了一个网站)。
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.\aspnet_regiis.exe -i
3.完成之后,看(wan cheng zhi hou _kan)Web服务扩展,应该会多出一个32位的asp.net将其设置为允许,缺点:这样会使整个IIS上的所有站点都以32位兼容方式运行 。
运行IIS6,看看是不是解决了。
后续:如果还有问题,比如Service Unavailable,恭喜你,你可以学到新知识了。很讨厌,看一下错误日志,我遇到的是RpcProxy.dll无法加载和无法加载站点/服务的所有 ISAPI 筛选器错误。解决方法:打开iis-->查看“网站(cha2 kan4 _wang3 zhan4)”的属性--->ISAPI 筛选器-->把有向下的红箭头的项删除掉-->重启iis-->OK 。至此全解决。
最后:学习这些知识都是拜学工网所赐。
文章引用网上很多文献,已不知原作者,对此表示感谢。
转载于:https://www.cnblogs.com/ituff/archive/2011/10/18/2858550.html
相关资源:Microsoft.Jet.Oledb.4.0相关mdac的安装文件_最低分