我有一个全新的Windows Server 2012r2盒子。 我有一个小的控制台.NET应用程序,包括本机Oracle客户端dll,并尝试连接到Oracle数据库,只是执行一个简单的查询。 我有4个其他服务器可以完成此测试。这台新机器不能。
System.TypeInitializationException: The type initializer for 'Oracle.DataAccess.Client.OracleClientFactory' threw an exception. ---> System.DllNotFoundException: Unable to load DLL 'OraOps12.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
我尝试在服务器上启用IIS。没运气。 我确认数据库可从此服务器ping。
不确定我还能尝试什么,或者我如何比较有效的机器。这些机器都没有任何障碍软件。
我还能尝试什么?
答案 0 :(得分:1)
OraOps12.dll具有对Visual C ++运行时的引用(例如,版本12.1引用了Visual C ++运行时2013)。如果您的服务器上尚未安装此运行时,则无法加载DLL,并且ODP.NET会抛出此异常。
像Dependency Walker这样的工具可以帮助您找到缺少的DLL引用,并为我节省了大量时间来查找新服务器上缺少的依赖项。