Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅在某些计算机上.NET应用程序中出现Oracle9i连接错误(ora-12154)_.net_Windows 7_Oracle9i_System.data.oracleclient_Ora 12154 - Fatal编程技术网

仅在某些计算机上.NET应用程序中出现Oracle9i连接错误(ora-12154)

仅在某些计算机上.NET应用程序中出现Oracle9i连接错误(ora-12154),.net,windows-7,oracle9i,system.data.oracleclient,ora-12154,.net,Windows 7,Oracle9i,System.data.oracleclient,Ora 12154,我制作了一个连接到Oracle9i数据库的.NET(4.6.1)应用程序。 这个应用程序在我编写应用程序的机器上运行良好,但在需要安装应用程序的机器上运行不好 我正在使用System.Data.OracleClient。我不知道会出什么问题。我检查了以下事项 这两台计算机都使用相同的TNS名称运行相同的oracle客户端 配置此配置是从开发中复制的 机器工作的地方 两台机器都调用正确的tnsnames.ora文件(使用 procmon) 这两台机器都可以很好地连接SQLPlus 两台计算机都使

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

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

  • 这两台计算机都使用相同的TNS名称运行相同的oracle客户端 配置此配置是从开发中复制的 机器工作的地方
  • 两台机器都调用正确的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)
我终于“解决”了这个问题。由于某种原因,如果我的程序安装在
程序文件(x86)
文件夹中,则oracle连接无法在目标计算机上运行。但是在我的开发机器上,它确实在这个文件夹中工作。我还不清楚为什么会这样。如果有人知道这背后的原因,请留下答案