Oracle.DataAccess错误

Bax*_*ter 4 c# asp.net oracle dll

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

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

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

目前有一个版本的应用程序运行正常,我正在不同的目录中的实时服务器上进行测试.我甚至尝试从工作应用程序中抓取Oracle.DataAccess .dll但仍然得到相同的错误消息.

ntz*_*lis 14

首先:Oracle客户端/提供商是一团糟.这适用于MS one(无论如何折旧)以及Oracle one.

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

  • 需要正确设置Oracle客户端(与.NET提供程序无关,这指的是通常在c:\ oracle中安装的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