gpt4 book ai didi

c# - Oracle.DataAccess 错误

转载 作者:太空狗 更新时间:2023-10-30 00:00:16 25 4
gpt4 key购买 nike

我有一个在 Windows 环境中运行的 asp.net/C# web 应用程序。该项目构建良好,并在我本地计算机的 VB.net 开发服务器上完美运行。

但是,当我发布到真正的应用程序服务器时,我收到以下错误消息:

[OracleException (0x80004005): 提供程序与 Oracle 客户端版本不兼容][TypeInitializationException:“Oracle.DataAccess.Client.OracleConnection”的类型初始值设定项引发异常。]

此应用程序的一个版本当前运行良好,我正在不同目录中的实时服务器上进行测试。我什至尝试从工作应用程序中获取 Oracle.DataAccess .dll,但仍然收到相同的错误消息。

最佳答案

首先:Oracle 客户端/提供商一团糟。这适用于 MS 版本(无论如何都已贬值)和 Oracle 版本。

为了通过 ODP.NET 提供程序连接到 Oracle 数据库,需要正确设置三件事:

  • 需要正确设置 Oracle 客户端(与 .NET 提供程序无关,这里指的是通常在 c:\oracle 中安装的 oracle 客户端)
  • ODP.NET 提供程序需要与安装的 Oracle 客户端兼容
  • 客户端和提供程序的体系结构以及您的应用程序需要匹配,您不能将 64 位客户端与 x86 提供程序/应用程序一起使用,反之亦然

通常最好的办法是同时拥有两者的最新版本。但是,如果您想一劳永逸地解决这个问题,请使用第三方 oracle .NET 提供商。

更新

其中一个比较好的来自 DataDirect(无从属关系):
http://www.datadirect.com/products/net/net-for-oracle/index.html

它不仅仅是安装(不需要 oracle 客户端),而且速度更快、完全托管、x64 和一般支持是一种比 ODP.NET 更好的方式。不过,这会让您付出代价。

DevArt 的也很不错(而且便宜得多):
http://www.devart.com/dotconnect/oracle/

出于可扩展性原因,我们决定使用 DataDirect,但这与您无关。

在这里您可以找到构建 .NET 提供程序的第三方的良好编译,但不限于 oracle:
http://msdn.microsoft.com/en-us/data/dd363565

关于c# - Oracle.DataAccess 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9674126/

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