我正在尝试在我的ASP.net项目上使用Oracle ODP.NET 11g(11.1.0.6.20)Instant Client作为数据提供程序,但是当我运行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();
Run Code Online (Sandbox Code Playgroud)
页面的错误如下所示:
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 …Run Code Online (Sandbox Code Playgroud) 我编写了一个连接到Oracle 10g数据库的C#应用程序.使用Oracle Data Access组件11.2"ODAC",它在我的机器上运行良好.
现在我想部署应用程序并将其安装在另一个只有.NET Framework的"干净机器"中!而且我不想将整个ODAC组件安装到用户手中!
我怎么能这样做?我试图将所有必要的DLL文件包含到我的bin文件夹中,例如:
但它仍然没有用.我该怎么做才能解决这个问题?
我们最近一直在努力使用新的 Oracle dll 更新我们的 C# 应用程序。我们为多个平台创建我们的软件。所以我们的软件解决方案既是一个 winform 桌面应用程序,也是一个 ASP.NET MVC web 应用程序。
这两个应用程序都可以完美地独立运行 Oracle 12.1。我们在重新分发我们的软件时添加了所有必要的 Oracle dll。因此,桌面应用程序在 MSI 中包含所有 dll,而网站的发布在 ~\Bin 中包含所有 dll。确保当网站托管在 IIS 上时,web 应用程序运行。这样我们的客户就不需要安装 Oracle Client。
现在问题来了,因为更新到 Oracle 12.2,我们不可能再运行 web 应用程序了。桌面应用程序仍然运行良好,尽管从 Oracle 12.2 开始,如果我们不允许桌面应用程序连接到 Internet,我们会收到防火墙异常消息。我们在 Oracle 12.1 或更低版本中没有收到该消息。

我们已经使用所有新的 Oracle dll 发布了我们的 web 应用程序(与桌面相同的 dll,与 web 应用程序具有 Oracle 12.1 时的方式相同),从那时起我们无法再连接到我们的 Oracle 数据库。我们得到以下错误:
Unable to load DLL 'OraOps12.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
System.TypeInitializationException: The type initializer for 'Oracle.DataAccess.Client.OracleConnection' threw an exception. ---> …Run Code Online (Sandbox Code Playgroud)