OleDbException (0x80004005):未找到 Oracle 客户端和网络组件。我该如何解决这个问题?

问题描述 投票:0回答:2

我想使用我的Web应用程序中的oledb连接(msdaora.dll)连接到oracle。

我用:

IIS 7.5
64 bit windows server 2008 r2 enterprise.
64 bit oracle 11g
32 bit oracle client

visual studio 2010
32bit msdaora.dll
my aplication is .aspx

我的错误是什么:

Server Error in '/PPIGanTT' Application.
--------------------------------------------------------------------------------

Oracle client and networking components were not found. These components are supplied by Oracle Corporation and are part of the Oracle Version 7.3.3 or later client software installation.

Provider is unable to function until these components are installed. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Data.OleDb.OleDbException: Oracle client and networking components were not found. These components are supplied by Oracle Corporation and are part of the Oracle Version 7.3.3 or later client software installation.

Provider is unable to function until these components are installed.

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.  

Stack Trace: 


[OleDbException (0x80004005): Oracle client and networking components were not found. These components are supplied by Oracle Corporation and are part of the Oracle Version 7.3.3 or later client software installation.

Provider is unable to function until these components are installed.]
   System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection) +351
   System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) +86
   System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup) +31
   System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +76
   System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +126
   System.Data.OleDb.OleDbConnection.Open() +43
   csOra.OpenCnn() +47
   csOra..ctor(String sTnsName, String sUserId, String sPassword) +273
   _Default.Page_Load(Object sender, EventArgs e) +8801
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
   System.Web.UI.Control.OnLoad(EventArgs e) +91
   System.Web.UI.Control.LoadRecursive() +74
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207

我之前尝试过的:

1-- 在 iis 中,我将

enable32applications
更改为
true

2-- 将我的连接类型从

oledb
更改为
oracle.data.access
,但这也不起作用。

3--我想找到 64 位 msdaora.dll,但找不到。

我可以做什么来修复这个错误? 谢谢。

windows oracle oracle11g iis-7.5 oledb
2个回答
0
投票

我也有类似的问题。根本问题是我的平台目标是

Any CPU
。有两种对我有用的解决方案:

  1. 将平台目标更改为目标上现有(且唯一)Oracle 客户端的 CPU,在您的情况下为 x86,或者
  2. 安装了缺少的 oracle 客户端,在您的情况下为 x64 msdora.dll。

我认为 IIS 正在决定使用哪个(x86 或 x64)msdora.dll,因为

Any CPU
平台目标编译。您必须要么取消 IIS 的选择,要么向其提供所有答案。


0
投票

对我来说,这是切换 PATH 环境变量上的项目的问题。 即我将其放置在:C:\Oracle\product .2 中;在此之前:C:\Oracle\product .1.0\dbhome_1 中; 对于不同的公司,这些路径部分会有所不同。 然后需要记住将 PATH 上的项目切换回以再次使用 Oracle 12。

© www.soinside.com 2019 - 2024. All rights reserved.