仅在某些计算机

时间:2017-10-06 13:15:40

标签: .net windows-7 oracle9i system.data.oracleclient ora-12154

我创建了一个连接到Oracle9i数据库的.NET(4.6.1)应用程序。 这个应用程序在我编写应用程序的机器上工作正常,但在需要安装应用程序的机器上却没有。

我正在使用System.Data.OracleClient。我不知道会出现什么问题。我检查了以下事项。

  • 两台计算机都使用相同的TNS名称运行相同的oracle客户端 组态。此配置从开发中复制 机器在哪里工作。
  • 两台机器都要求使用正确的tnsnames.ora文件(使用后验证 将procmon)。
  • 两台机器都可以正常连接SQLPlus。
  • 两台计算机都使用相同的活动目录帐户进行测试。
  • 这两台机器都有正确的用户名和密码设置 连接。
  • 我尝试全新安装oracle客户端但没有成功。
  • 两台计算机上的应用程序都以32模式运行。
  • 两台计算机都运行相同版本的Windows 7

任何人都知道还有什么可能是导致这个问题的原因吗?

错误的Stacktrace:

2017-10-05 16:40:48.7203 - ERROR: System.Data.OracleClient.OracleException (0x80131938): ORA-12154: TNS:servicenaam kon niet worden herleid.

   bij System.Data.OracleClient.OracleException.Check(OciErrorHandle errorHandle, Int32 rc)
   bij System.Data.OracleClient.OracleInternalConnection.OpenOnLocalTransaction(String userName, String password, String serverName, Boolean integratedSecurity, Boolean unicode, Boolean omitOracleConnectionName)
   bij System.Data.OracleClient.OracleInternalConnection..ctor(OracleConnectionString connectionOptions)
   bij System.Data.OracleClient.OracleConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
   bij System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)
   bij System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)
   bij System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)
   bij System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
   bij System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
   bij System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
   bij System.Data.OracleClient.OracleConnection.Open()
   bij QardPrint.Model.Locus.LocusFunctions.AddEmployee(Employee employee, String& errMsg)

1 个答案:

答案 0 :(得分:0)

我终于“解决了”这个问题。由于某些原因,如果我的程序安装在Program Files(x86)文件夹中,则oracle连接在目标计算机上不起作用。但是在我的开发机器上它确实在这个文件夹中工作。我仍然不清楚为什么会这样。如果有人知道背后的原因,请留下答案。