未在本地计算机上注册“OraOLEDB.Oracle.1”提供程序解决方案

一、现象:

  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:/oracle/10.2.0/db/BIN/OraOLEDB10.dll。

 

他观点:

解决方法如下:到ORACLE_HOME目录,如c:/Oracle/Ora92 点击鼠标右键->属性->安全, 对ASP.NET 帐户赋予允许读、执行权限,并在“高级”中保证该目录的子目录、文件都继承这些属性,确定。 重新注册oraoledb.dll: regsvr32 $/oracle/ora92/bin/oraoledb.dll 2 这种情况有3种可能的原因 1.装Oracle 的机器是不是NTFS的?如果是的话,将/Ora81下的BIN的权限,全部放开,给所有用户。 (不然在B/S结构下会因为没有权限访问目录而报这个错误) 2.如果数据库服务器是Oracle816的。在服务器的那台机器上找Ora81/network/ADMIN下的sqlnet.ora文件,把里面的 SQLNET.AUTHENTICATION_SERVICES= (NTS)改成 SQLNET.AUTHENTICATION_SERVICES= (NONE) (这种会造成某些机器上报驱动初始化失败的错误,在用OracleClient下出现过一次) 3.如果以上都没有解决问题。可以考虑是不是注册表里 ...

你可能感兴趣的:(oracle,asp.net,数据库服务器,服务器,network,service)