我正在尝试使用Oracle ODP.NET 11g (11.1.0.6.20) 即时客户端在我的 ASP.net 项目中数据提供者但是当我运行 aspx 页面时,我得到一个“提供者与Oracle客户端版本不兼容“错误消息。任何帮助将不胜感激。
我在 Visual Studio 2005 中引用了数据提供程序,后面的代码如下所示:
using Oracle.DataAccess.Client;
..
OracleConnection oOracleConn = new OracleConnection();
oOracleConn.ConnectionString =
"Data Source=MyOracleServerName;" +
"Integrated Security=SSPI";
oOracleConn.Open();
//Do Something
oOracleConn.Close();
该页面的错误如下所示:
Exception Details: Oracle.DataAccess.Client.OracleException: The provider is not compatible with the version of Oracle client
Source Error:
Line 21:
Line 22:
Line 23: OracleConnection oOracleConn = new OracleConnection();
Line 24: oOracleConn.ConnectionString =
Line 25: "Data Source=MyOracleServerName;" +
[OracleException (0x80004005): The provider is not compatible with the version of Oracle client]
Oracle.DataAccess.Client.OracleInit.Initialize() +494
Oracle.DataAccess.Client.OracleConnection..cctor() +483
Stack Trace:
[TypeInitializationException: The type initializer for 'Oracle.DataAccess.Client.OracleConnection' threw an exception.]
Oracle.DataAccess.Client.OracleConnection..ctor() +0
Boeing.IVX.Web.RoyTesting.Page_Load(Object sender, EventArgs e) in C:\Documents and Settings\CE218C\Desktop\IVX.Net\Web\IVX\RoyTesting.aspx.cs:23
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +15
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +33
System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +47
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1436
我一直在进一步研究这个问题,您只需从同一下载版本的 ODP.Net 中获取所有适当的 DLL,并将它们放在与您的 Exe 文件相同的文件夹中,因为 ODP.Net 很挑剔不混合版本号。
我已经在这里解释了如何执行此操作:http://splinter.com.au/using-the-new-odpnet-to-access-oracle-from-c不过,要点如下:
- 下载ODP.Net
- 解压文件
- 解压里面所有的JAR文件
- Grab these dll's that were just unzipped:
- oci.dll(从“oci.dll.dbl”重命名)
- Oracle.DataAccess.dll
- oraociicus11.dll
- OraOps11w.dll
- orannzsbb11.dll
- oraocci11.dll
- ociw32.dll(从“ociw32.dll.dbl”重命名)
- 将所有 DLL 放在与 C# 可执行文件相同的文件夹中
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)