一、现象:
C#程序中需要以Provider=OraOLEDB.Oracle.1方式访问ORACLE数据库。但程序执行时报异常:未在本地计算机注册“OraOLEDB.Oracle.1”提供程序
二、解决方案:
1、在Oracle安装目录找到Oracle的主程序目录,点击鼠标右键->属性->安全,对ASP.NET或者NETWORK SERVICE 帐户赋予允许读、执行权限,并在“高级”中保证该目录的子目录、文件都继承这些属性。
2、服务器ORACLE为10g,虽然安装时选择了Oracle Data Provider for .net和Oracle Provider for OLE DB。但是还是需要人工命令行注册一下
regsvr32 D:oracle10.2.0dbBINOraOLEDB10.dll。
其他观点:
解决方法如下:
1)到ORACLE_HOME目录,如c:OracleOra92 点击鼠标右键->属性->安全, 对ASP.NET 帐户赋予允许读、执行权限,并在“高级”中保证该目录的子目录、文件都继承这些属性,确定。
2)重新注册oraoledb.dll: regsvr32 $oracleora92inoraoledb.dll 2 这种情况有3种可能的原因 1.装Oracle 的机器是不是NTFS的?如果是的话,将Ora81下的BIN的权限,全部放开,给所有用户。 (不然在B/S结构下会因为没有权限访问目录而报这个错误) 2.如果数据库服务器是Oracle816的。在服务器的那台机器上找Ora81
etworkADMIN下的sqlnet.ora文件,把里面的 SQLNET.AUTHENTICATION_SERVICES= (