提供程序与Oracle客户端的版本不兼容

提供程序与Oracle客户端的版本不兼容

我试着用Oracle ODP.NET 11g(11.1.0.6.20)即时客户端将我的ASP.NET项目作为数据提供者但是当我运行aspx页面时,我会得到一个“提供程序与Oracle客户端的版本不兼容“错误信息。任何帮助都将不胜感激。

我在VisualStudio 2005中引用了数据提供程序,后面的代码如下所示:

using Oracle.DataAccess.Client;..OracleConnection oOracleConn = new OracleConnection();oOracleConn.ConnectionString =
    "Data Source=MyOracleServerName;" +
    "Integrated Security=SSPI";oOracleConn.Open();//Do SomethingoOracleConn.Close();

页面的错误如下所示:

Exception Details: Oracle.DataAccess.Client.OracleException: The provider is not compatible with the version of Oracle clientSource 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() +483Stack 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


一只斗牛犬
浏览 2411回答 3
3回答

临摹微笑

我一直在进一步研究这个问题,您只需从同一个下载版本的ODP.Net中获取所有适当的DLL,并将它们放在与您的exe文件相同的文件夹中,因为ODP.Net对不混合版本号很挑剔。我在这里解释了如何做到这一点:http:/splinter.com.au/使用-新的-odpnet-to-access-oracle-from-c不过,这其中的要点是:下载ODP.Net解压缩文件打开里面所有的罐子抓取这些刚刚解压缩的DLL:oci.dll(改名为“oci.dll.dbl”)Oracle.DataAccess.dlloraociicus11.dllOraOps11w.dllorannzbb11.dlloraocci11.dllociw32.dll(改名为“ociw32.dll.dbl”)将所有DLL放在与C#可执行文件相同的文件夹中

翻过高山走不出你

我只安装了.NET 2.0的Oracle数据提供程序(11.1.0.6.20)我没有安装Oracle即时客户端(11.1.0.6.0).我刚刚安装了它,错误消失了!
打开App,查看更多内容
随时随地看视频慕课网APP