oracle简易客户端里没有oraoledb,解决未在本地计算机上注册"OraOLEDB.Oracle"

1

重装系统后,因为刚拿到一个oracle9.2的正版软件,一时高兴就装上了。可是发现项目不能用了,出现以下

异常:System.Web.Services.Protocols.SoapException: 服务器无法处理请求。 --->

System.InvalidOperationException: 未在本地计算机上注册“OraOLEDB.Oracle”提供程序。

---> System.Data.OleDb.OleDbException: 没有可用的错误信息:

REGDB_E_CLASSNOTREG(0x80040154)。

--- 内部异常堆栈跟踪的结尾 ---

at XXX.DataAccess.DBO.GetDataAdapter(String sql) in

D:\development\项目\XXX\源程序\XXXSolution\XXXService\DataAccess\DBO.cs:line

190

at XXX.DataAccess.DBO.ExecuteScalar(String sql) in

D:\development\项目\XXX\源程序\XXXSolution\XXXService\DataAccess\DBO.cs:line

227

at XXX.DataAccess.LoginDBO.GetUserOrgNo(String userID, String

password) in

D:\development\项目\XXX\源程序\XXXSolution\XXXService\Login\LoginDBO.cs:line

32

at XXX.Business.BusinessObject.LoginBO.GetUserOrgNo(String userID,

String password) in

D:\development\项目\XXX\源程序\XXXSolution\XXXService\Login\LoginBO.cs:line

25

at XXX.Business.WebService.LoginWS.GetUserOrgNo(String userID, String

password) in c:\inetpub\wwwroot\XXXWebService\LoginWS.asmx.cs:line 60

在网上找到一篇解决The 'OraOLEDB.Oracle.1' provider is not registered on the local machine的文章解决了这个问题,原文请参考:http://www.cnblogs.com/tongzhenhua/archive/2004/06/18/16714.html

解决方法如下:

到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.如果以上都没有解决问题。可以考虑是不是注册表里的注册真的丢失了。(可能性比较小,windows还是比较安全的)

regsvr32 ..\ORACLE_HOME\bin\OraOLEDB.dll

再不行可以重装一下客户端试试。

3

使用OLEDB方式连接Oracle数据库,使用Provider=MSDAORA.1;可正常使用,改成

Provider=OraOLEDB.Oracle;报错,显示说:未在本地计算机上注册"OraOLEDB.Oracle"提供程序(The

'OraOLEDB.Oracle' provider is not registered on the local machine.).

查了一下,发现是装Oracle 9i client的时候,默认没有安装Oracle 的OLEDB驱动,到上搜索oracle provider for oledb download, 查到,我用的oracle是9.2的版本,下载这个版本的驱动,安装之后,OraOLEDB.Oracle驱动就可以用了。(同时要保证aspnet用户对oracle home目录有完全控制权限)

4

解决方法:

1、打开安装目录Oracle\ora92的属性 -> 安全选项,选Authenticated Users,将Read and Execute 的属性取消,然后又选择,确定后重新启动机器;

2、打开Oracle\ora92\bin的属性 -> 共享选项,在网络上共享这个文件夹

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: “在本地计算机注册oraoledb.oracle.1’提供程序”错误通常是因为没有正确安装或注册Oracle Data Provider for .NET(ODP.NET)所致。解决此问题的方法如下: 1.首先,确保已正确安装Oracle客户。请在Oracle官方网站上下载并安装最新版本的Oracle客户软件。 2.检查注册表设置。打开注册表编辑器(运行regedit命令),导航到HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE键,确保是否存在ORACLE_HOME键。如果不存在,请创建一个新的字符串值ORACLE_HOME,并将其值设置为Oracle客户安装的路径。 3.确保“oraoledb.oracle.1”已正确注册。打开命令提示符(以管理员身份运行),导航到Oracle客户安装目录的bin文件夹,然后执行以下命令进行注册: ``` regsvr32 oraoledb11.dll(适用于Oracle 11g) regsvr32 oraoledb12.dll(适用于Oracle 12c) ``` 4.如果还是无法注册提供程序,则可能需要卸载和重新安装Oracle客户。在重新安装之前,请确保完全删除现有的Oracle客户。 5.检查应用程序的配置文件或连接字符串。确保应用程序使用正确的Oracle Data Provider for .NET(ODP.NET)版本,并且连接字符串正确指向正确的Oracle数据库。 希望上述解决办法能帮助您解决该问题。如果问题仍然存在,请考虑咨询Oracle支持团队以获取更详细的技术支持。 ### 回答2: 如果在本地计算机注册oraoledb.oracle.1”提供程序,可以按照以下步骤解决该问题: 1. 确保已安装Oracle客户软件:在本地计算机上安装适用于您操作系统的Oracle客户软件,例如Oracle Instant Client或Oracle Database软件。 2. 添加Oracle客户路径到系统环境变量:在环境变量中添加Oracle客户软件的安装路径。打开系统的“控制面板”,点击“系统和安全”,选择“系统”,然后点击“高级系统设置”。在“高级”选项卡下,点击“环境变量”。在“系统变量”部分,找到“Path”变量,点击“编辑”。在变量值末尾添加Oracle客户软件的安装路径,点击“确定”保存更改。 3. 注册Oracle提供程序:打开命令提示符,运行以下命令注册oraoledb.oracle.1”提供程序: regsvr32 oraoledb.oracle.1 4. 重启计算机注册完提供程序后,重启计算机以使更改生效。 5. 检查注册表的相关设置:如果仍然无法解决问题,可以通过编辑注册表来检查相关设置。请注意,编辑注册表存在一定的风险,请在操作之前备份注册表或咨询专业人士的帮助。 以上是解决在本地计算机注册oraoledb.oracle.1”提供程序的一些常见方法。在执行任何操作之前,请确保备份重要数据,并确保您具备适当的技术知识和权限。 ### 回答3: 要解决在本地计算机注册oraoledb.oracle.1”提供程序的问题,您可以按照以下步骤操作: 1. 首先,确认您的计算机是否安装了Oracle数据库客户。如果没有安装,请前往Oracle官方网站下载并安装合适版本的客户。 2. 如果您已经安装了Oracle数据库客户,但仍无法找到“oraoledb.oracle.1”提供程序注册信息,请确保您的客户安装是正确的。可以重新运行Oracle数据库客户安装程序,选择修复或更新选项进行修复。 3. 检查您的计算机的环境变量设置。请确保环境变量PATH中包含了Oracle客户安装路径。如果没有,请手动将路径添加到环境变量中。 4. 如果您的计算机上已经安装了多个版本的Oracle客户,可能会导致注册信息冲突。请确定您使用的是正确的客户版本并确保其注册信息是有效的。 5. 如果以上方法都无法解决问题,尝试重新安装Oracle客户。卸载现有的客户,清理所有残留的文件和注册信息,然后重新安装新的客户版本。 总之,要解决在本地计算机注册oraoledb.oracle.1”提供程序的问题,您需要确定安装了正确的Oracle数据库客户,并确保其注册信息正确有效。如果问题仍然存在,可以尝试更新或重新安装客户解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值