Windows XP上IIS ASP使用Oledb方式连接Oracle10g数据库,提示错误:
ADODB.Connection (0x800A0E7A)
未找到提供程序。该程序可能未正确安装。
Error Type:
ADODB.Connection (0x800A0E7A)
Provider cannot be found. It may not be properly installed.
普通的应用程序却能正常访问数据库。以前的ASP用的是8i的client和server,从未遇到此问题。
后来找到原因:是Oracle目录的授权问题。
解决办法:将文件夹ORACLE_HOME(如: D:/oracle/ora10g) 对IUSR_XXX用户进行授权,而且要选中:替换子目录权限。
值得注意的是:不能为了图省事,只对ORACLE_HOME的父目录进行授权。因为安装程序对ORACLE_HOME进行了特殊的权限设置。
另外,特意测试如下:
用9i的client访问9i的数据库:
D:为NTFS文件系统;将D:/oracle/ora92/bin/OraOLEDB.dll文件为IUSR_XXX添加一个“禁止”的权限;重启IIS后,ASP页面就无法访问数据库了。
但不知为何10g需要显式地对Oracle_HOME目录进行授权???
BTW. 应该去掉IE的"显示友好HTTP错误信息"选项,否则只能看到HTTP500错误。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9844649/viewspace-580097/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9844649/viewspace-580097/