gpt4 book ai didi

c# - 提供者与 Oracle 客户端版本不兼容

转载 作者:IT王子 更新时间:2023-10-29 03:31:16 25 4
gpt4 key购买 nike

我正在尝试在我的 ASP.net 项目中使用 Oracle ODP.NET 11g (11.1.0.6.20) Instant Client 作为 Data Provider 但是当我运行 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
  • 获取这些刚刚解压缩的 dll:
    • oci.dll(从“oci.dll.dbl”重命名)
    • Oracle.DataAccess.dll
    • oraociicus11.dll
    • OraOps11w.dll
    • orannzsbb11.dll
    • oraocci11.dll
    • ociw32.dll(从“ociw32.dll.dbl”重命名)
  • 将所有 DLL 放在与 C# 可执行文件相同的文件夹中

关于c# - 提供者与 Oracle 客户端版本不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/659341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com