错误:提供程序与oracle的版本不兼容

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

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

当我在本地运行测试时,网站运行正常(VS 2013上的Ctrl + F5)。但是,在本地发布它(我的PC运行IIS)后,我遇到了一个有线错误:“提供程序与oracle版本不兼容”。

我已经确定应用程序设置为在iis控制台中以32位模式运行。但是当我从visual studio运行它时,我仍然无法弄清楚为什么网站有效,而且当我发布它时它不起作用。

c# .net oracle iis odac
1个回答
0
投票

仔细检查(!)目标计算机上安装的Oracle Client版本。

  • 如果你的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

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