如何在仅具有Oracle 12c的计算机上托管使用Oracle 11g的ASP.NET应用程序?

Ned*_*Ned 5 asp.net oracleclient oracle11g odac oracle12c

我的ASP.NET应用程序在Windows Server 2008 R2服务器上运行.已安装Oracle 11g.

我将此应用程序部署到Windows Server 2016服务器.Oracle 12c安装在此服务器中(不支持11g).

当我运行该应用程序时,我收到此错误:

无法加载文件或程序集Oracle.DataAccess

如果我将Oracle 11g dll(Oracle.DataAccess.dll)复制到应用程序的bin文件夹,我会看到以下消息:

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

有没有办法在不安装Oracle 11g或更改应用程序代码的情况下运行此应用程序?

在此输入图像描述

Lit*_*oot 0

您的意思是,“不安装 Oracle 11g,不是吗?现在已经安装了 12c。至少,这就是我的理解 - 应用程序在 [Server 2008 + 11g] 上运行正常,现在您希望它在 [Server 2016] 上运行+ 12c]。

如果事实证明我是对的并且您必须在 Server 2016 上安装 11g,那么您可以安装 Oracle 客户端软件,但是 - 如果您问我 - 我宁愿安装 Oracle 11g Express Edition (XE) 数据库。原因如下:

  • 安装很简单(下一步点击几下)
    • 只需确保将其安装到其自己的 Oracle Home(即目录,该目录与包含 12c 的目录不同)
  • 不会占用太多空间
  • 将其(在“服务”中)设置为手动启动(即从不),因为您实际上并不需要将其用作数据库而只需要它的 DLL 或您的应用程序需要的任何内容,因此它不会占用任何资源(但硬盘空间)
  • 它包含您可能需要的一切(包括实用程序,例如导出/导入和 SQL*Loader、网络支持)
  • 每当我需要某些东西时,我对 XE 安装比对 Client 安装更满意(但是好吧,这可能是我,无法正确使用 Client)

如果事实证明我错了,哦,好吧,等待别人的更好的意见。