“Oracle.DataAccess.Client.OracleException: 提供程序与此版本的 Oracle 客户机不兼容”问题的解决方案

环境:windows 2003 x64,Oracle 10g x64,odp.net(正确安装),.net framework 4
问题:.net应用程序通过Oracle.DataAccess.dll访问64位的Oracle服务器,在连接时出现以下异常:“System.TypeInitializationException: The type initializer for 'Oracle.DataAccess.Client.OracleConnection' threw an exception. ---> Oracle.DataAccess.Client.OracleException: 提供程序与此版本的 Oracle 客户机不兼容
通过windows的事件查看器,发现类似如下应用程序错误:
事件类型: 错误
事件来源:
事件种类:
事件 ID: 0
日期: 2011-10-20
事件: 15:25:18
用户: N/A
计算机:
描述:
Service cannot be started. System.TypeInitializationException: The type initializer for 'Oracle.DataAccess.Client.OracleConnection' threw an exception. ---> Oracle.DataAccess.Client.OracleException:提供程序与此版本的 Oracle 客户机不兼容

事件类型: 错误
事件来源: .NET Runtime 4.0 Error Reporting
事件种类:
事件 ID: 5000
日期: 2011-10-20
事件: 15:25:19
用户: N/A
计算机:
描述:
EventType clr20r3, P1 dbsupport.exe, P2 1.0.0.0, P3 4e9d2829, P4 oracle.dataaccess, P5 4.112.2.0, P6 4cea1964, P7 6cc, P8 1f5, P9 oracle.dataaccess.client.oracle, P10 NIL.

如下系统错误:
事件类型: 错误
事件来源: SideBySide
事件种类:
事件 ID: 59
日期: 2011-10-20
事件: 15:25:18
用户: N/A
计算机:
描述:
Generate Activation Context 为 C:\odp.net\bin\OraOps11w.dll 失败。 参考错误消息: 参照的汇编没有安装在系统上

事件类型: 错误
事件来源: SideBySide
事件种类:
事件 ID: 32
日期: 2011-10-20
事件: 15:39:28
用户: N/A
计算机:
描述:
找不到附属汇编 Microsoft.VC80.CRT,上一个错误是 参照的汇编没有安装在系统上。

事件类型: 错误
事件来源: SideBySide
事件种类:
事件 ID: 59
日期: 2011-10-20
事件: 15:39:28
用户: N/A
计算机:
描述:
Resolve Partial Assembly 为 Microsoft.VC80.CRT 失败。 参考错误消息: 参照的汇编没有安装在系统上。

原因
服务器安装的.net framework 中缺少以下两个包:
Microsoft Visual C++ 2005 Redistributable Package,
Microsoft Visual C++ 2005 SP1 Redistributable Package

解决方法
下载上述包,并安装到服务器上。
下载地址:
http://www.microsoft.com/download/en/details.aspx?id=21254
http://www.microsoft.com/download/en/details.aspx?id=18471


你可能感兴趣的:(Oracle,.NET平台)