2017-10-06 27 views
2

我製作了一個連接到Oracle9i數據庫的.NET(4.6.1)應用程序。 此應用程序在我編寫應用程序的機器上正常工作,但不在應用程序需要安裝的機器上。僅在某些計算機上的.NET應用程序中出現Oracle9i連接錯誤(ora-12154)

我正在使用System.Data.OracleClient。我不知道什麼是錯的。我查了下面的東西。

  • 兩臺計算機都運行相同的Oracle客戶端,並使用相同的TNS名稱 配置。該配置從正在工作的開發機器 中複製而來。
  • 兩臺機器都需要正確的tnsnames.ora文件(使用 procmon進行驗證)。
  • 兩臺機器都可以很好地連接SQLPlus。
  • 兩臺機器都使用相同的活動目錄帳戶進行測試。
  • 兩臺機器都爲 連接提供了正確的用戶名和密碼設置。
  • 我嘗試全新安裝的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) 

回答

0

我終於 「解決」 問題。由於某種原因,如果我的程序安裝在Program Files(x86)文件夾中,則oracle連接無法在目標機器上運行。但是在我的開發機器上它確實在這個文件夾中工作。現在還不清楚爲什麼會這樣。如果有人知道背後的原因,請留下回答。

相關問題