gpt4 book ai didi

asp.net - 如何在只有 Oracle 12c 的机器上托管使用 Oracle 11g 的 ASP.NET 应用程序?

转载 作者:行者123 更新时间:2023-12-04 21:31:11 27 4
gpt4 key购买 nike

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

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

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

Could not load file or assembly Oracle.DataAccess



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

The provide is not compatible with the version of Oracle client



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

enter image description here

最佳答案

我很清楚您的应用程序已链接到 Oracle.DataAccess.dll 的 11gR2 dll。

您能否检查路径中的 dll 版本(可能在 GAC 中,但并非总是如此)?

你在 Web.config 的这个部分有什么(样本取自我的网站)?这是否与您路径中的 dll 匹配? :

<runtime>
<!-- This prevents the Windows Event Log from frequently logging that HMAC1 is being used (when the other party needs it). -->
<legacyHMACWarning enabled="0" />
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<!-- Oracle -->
<dependentAssembly>
<assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89B483F429C47342" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.65535.65535.65535" newVersion="4.122.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Oracle.ManagedDataAccess" publicKeyToken="89b483f429c47342" culture="neutral" />
<bindingRedirect oldVersion="4.0.0.0 - 4.65535.65535.65535" newVersion="4.122.1.0" />
</dependentAssembly>

上面我将所有版本的驱动程序重新映射到我的服务器上安装的驱动程序。它通常工作正常,除非您正在积极使用仅存在于“up”版本中的东西。

请务必检查您的 dll 版本(以上版本适用于 12.2 驱动程序)。

关于asp.net - 如何在只有 Oracle 12c 的机器上托管使用 Oracle 11g 的 ASP.NET 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50865272/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com