【问题标题】:Error: The provider is not compatible with the version of oracle错误:提供程序与 oracle 版本不兼容
【发布时间】:2018-06-04 03:57:11
【问题描述】:

我开发了一个基于 .Net C# 的网站,该网站主要依赖于 Oracle 数据库。要访问数据库,我一直在使用 Oracle ODAC 11G。 (Oracle.DataAccess.dll 版本:1.111.6.10)。

当我在本地运行该网站进行测试时,该网站运行良好(在 VS 2013 上为 Ctrl + F5)。但是,在本地发布后(我的电脑运行 IIS)我遇到了有线错误:“提供程序与 oracle 的版本不兼容”。

我已经确保应用程序设置为在 iis 控制台中以 32 位模式运行。但是我仍然无法弄清楚为什么当我从 Visual Studio 运行该网站时该网站可以正常工作,而当我发布它时却无法正常工作。

【问题讨论】:

  • 您在本地运行的是什么版本的 Oracle,您的 Web 服务器上运行的是什么版本的 Oracle?

标签: c# .net oracle iis odac


【解决方案1】:

仔细检查(!)在目标机器上安装了哪个版本的 Oracle 客户端。

  • 是否与您的 Oracle.DataAccess.dll 具有相同的架构(即 32 位或 64 位)?
  • 版本是否匹配。您甚至必须比较次要版本。仅仅“11.1”是不够的。

我推荐Sigcheck工具,即

cd %ORACLE_HOME%
sigcheck -s oraociei*.dll
sigcheck -s OraOps*w.dll

同时检查哪个文件Oracle.DataAccess.dll被加载。它可能是从 GAC 加载的(默认情况下 GAC 优先)而不是您提供的文件。就可以像这样找出加载了哪个DLL:

var con = New OracleConnection();
Console.WriteLine(con.GetType().Assembly.FullName);
Console.WriteLine(con.GetType().Assembly.Location);

另见The provider is not compatible with the version of Oracle client

【讨论】:

    猜你喜欢
    • 2013-08-07
    • 2013-05-31
    • 1970-01-01
    • 2014-05-25
    • 1970-01-01
    • 2010-11-18
    • 2010-10-14
    • 2013-06-29
    • 1970-01-01
    相关资源
    最近更新 更多