【问题标题】:Oracle9i connection error (ora-12154) in .NET application only on some machines.NET 应用程序中的 Oracle9i 连接错误 (ora-12154) 仅在某些机器上
【发布时间】:2018-03-18 07:29:40
【问题描述】:

我制作了一个连接到 Oracle9i 数据库的 .NET(4.6.1) 应用程序。 此应用程序在我编写应用程序的机器上运行良好,但在需要安装应用程序的机器上运行良好。

我正在使用 System.Data.OracleClient。我不知道可能出了什么问题。我检查了以下内容。

  • 两台机器运行相同的 Oracle 客户端,具有相同的 TNS 名称 配置。此配置是从开发中复制的 机器工作的地方。
  • 两台机器都需要正确的 tnsnames.ora 文件(使用验证 procmon)。
  • 两台机器都可以正常连接SQLPlus。
  • 两台机器都使用相同的 Active Directory 帐户进行了测试。
  • 两台机器的用户名和密码设置正确 连接。
  • 我尝试全新安装 oracle 客户端,但没有成功。
  • 应用程序在两台机器上都以 32 模式运行。
  • 两台机器运行相同版本的 Windows 7

有谁知道这个问题还有什么原因?

错误的堆栈跟踪:

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)

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2016-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多