Oracle.数据访问错误

2023-12-12

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

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

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

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


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

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

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

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

UPDATE

更好的之一来自 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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Oracle.数据访问错误 的相关文章

随机推荐

  • 在 C 上定义 LDBL_MAX/MIN

    我正在使用 C 语言 我必须做一个练习 其中我必须打印以下值long double min and long double max I used float h作为标题 但是这两个宏 LDBL MIN MAX 给我相同的值 就好像它只是一个
  • jquery .get/.post 在 ie 7 或 8 上不起作用,在 ff 中工作正常

    我基本上在一个页面上有这个
  • 如何在浏览器中查看xsl输出?

    每个人 我正在构建一个基于一些 xml 数据文件的网站 因此我选择使用 XSLT 来绑定浏览器中的样式表 一开始它工作得很好 但最近 随着模板变得越来越复杂 一些奇怪的事情发生了 我使用 copy of 元素将数据复制到样式表中 这是代码
  • 洗牌和拆分后是否应该分别标准化训练和测试测试?

    我想在 0 1 范围内标准化我的数据 洗牌和分割后是否应该对数据进行归一化 是否应该重复相同的过程进行测试 我遇到了一个使用这种标准化类型的Python代码 这是用目标范围 0 1 标准化数据的正确方法吗 X train np array
  • 将两个列表附加在一起的 Prolog 算法的说明

    这是一种将两个列表附加在一起的算法 Domains list integer Predicates nondeterm append list list list Clauses append List List append H L1 L
  • PostgreSQL SQL 查询用于遍历整个无向图并返回找到的所有边

    我有一个edges我的 PostgreSQL 数据库中的表代表了一个directed图表 有两列 节点来源 and node to 值是节点的 id 给定单个节点 初始节点 我希望能够遍历整个图表 但是在一个无向的 way 我的意思是 例如
  • 是否可以交换两个变量的地址?

    我知道可以像这样交换两个变量的值 include
  • 复合主键中可为空的列有什么问题?

    ORACLE 不允许在构成主键的任何列中出现 NULL 值 大多数其他 企业级 系统似乎也是如此 同时 大多数系统还允许unique对可为空的列的约束 为什么唯一约束可以有 NULL 而主键却不能 这是否有根本的逻辑原因 或者这更多的是技术
  • 使用 Jackson 将 xml 转换为 json

    我想将 xml 转换为 json xml的格式如下
  • Web api 调用中的空引用

    这很奇怪 我不明白这里发生了什么 我有一个 Web api 项目 在一个控制器中对某种方法的调用最终会调用服务中的一个函数 如下所示 public MyClassBase GetThing Guid id if cache Contains
  • 带有装饰函数参数的 python 装饰器

    当我用以下内容包装函数时 如何使包装函数看起来和感觉与包装函数完全相同 help function 尤其 一些代码 gt gt gt def wraps f def call args kw print in f args kw examp
  • Silverlight 中的多个异步 UI 更新

    如何从 Silverlight 回调执行多个 UI 更新 例如 我希望用户单击一个按钮 让 UI 进行更改 做一些工作 然后进行另一个更改 相反 用户单击按钮 回调似乎在后台执行 然后所有用户界面的变化在我眼前闪现 主页 xaml
  • 使用“matplotlib.mlab.griddata”时程序挂起

    我编写了一个脚本 Python 2 6 来以 x y z csv 格式 网格数据 并显示数据的等高线图 该脚本适用于某些数据集 但不适用于其他数据集 即使这两个数据集是使用相同的脚本创建的 要绘制的数据集是通过对主数据集进行二次采样而创建的
  • 如何获取天数和日期之间的差异

    function duration day date date1 date date2 date create Y m d date1 date create Y m d strtotime date echo date1 echo dat
  • Swift 中“self”的用途是什么?

    我是 Swift 新手 我想知道什么self用于以及为什么 我在类和结构中看到过它 但我真的不认为它们是必要的 甚至没有必要在我的代码中提及它们 它们的用途是什么 为什么 什么情况下需要使用它 我已经阅读了很多关于这个问题的问题和答案 但没
  • 如何在文件下载时提示“另存为”对话框

    我试图在下载文件时提示 另存为 对话框 但我得到的是 或者文件正在浏览器上打开 或者下载文件时没有提示保存位置和保存名称 我的控制器的代码 public FileContentResult Save string text string c
  • 如何从同一个板条箱中的不同模块导入/使用宏?

    现实生活场景 我想用crate app verbose trace string literal inside crate app args parse module 可重现的场景 经过一个小时的尝试 我得到了以下简单的例子 它暴露了我对宏
  • 准备用于打印单色位图图像的 ZPL 命令

    我在准备 ZPL 命令以在 Zebra RZ400 300 dpi 上打印位图图像时遇到问题 我有以下代码片段 但我不明白我到底在哪里犯了错误 var bitmapImagePath C Sample bmp Gets the size o
  • 当按下按钮时如何模拟按下不同的按钮?

    是否可以使用 vue js 模拟按下按钮时按下另一个按钮 For example if I press the Arrow down button I would like it to be represented as if I had
  • Oracle.数据访问错误

    我有一个在 Windows 环境中运行的 asp net C Web 应用程序 该项目构建良好 并在我本地计算机的 VB net 开发服务器上完美运行 但是 当我发布到真实应用程序服务器时 我收到以下错误消息 OracleException