2014-03-12 32 views
1

這個問題可以看起來像其他人的克隆,但我找不到這個問題的正確答案。 這是我的場景: 我有一個需要寫入到oracle數據庫的webservices調用的C#軟件。 在我的測試服務器沒有問題,它就像一個魅力,但對另服務器它給我這個錯誤:Oracle.DataAccess.Client.OracleException在Connection.Open()

Oracle.DataAccess.Client.OracleException at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, String procedure, Boolean bCheck, Int32 isRecoverable) at Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, Object src) at Oracle.DataAccess.Client.OracleConnection.Open()

在沒有其他消息。 我認爲這是一個錯誤安裝Oracle客戶端,但是,我寫來測試Oracle連接另一個小應用程序的工作原理:

var connectionString = ConfigurationManager.AppSettings["connectionString"]; 
using (OracleConnection nwindConn = new OracleConnection(connectionString)) 
{ 
    nwindConn.Open(); 
    Console.WriteLine("opened"); 
} 

的ConnectionString:

Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=thisdatabase.thisinstance)(PORT=1521))(LOAD_BALANCE=yes)(FAILOVER=on)(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=serv)(FAILOVER_MODE=(TYPE=SESSION)(METHOD=BASIC)(RETRIES=180)(DELAY=5))));User ID=myuser;Password=mypsw; 

所以,這個問題,我覺得是在應用程序配置中,但爲什麼在其他服務器上工作? 我試圖編輯項目和解決方案調試平臺配置,但問題仍然存在..任何建議?

+0

我建議發佈connectionstring。隨意刪除安全數據.... – Steve

+0

打開連接和寫入是不同的動物。擴展你的測試項目來插入一些數據,看看你是否得到相同的錯誤。 – paqogomez

+0

@paqogomez:但錯誤是在連接打開,所以我需要先解決這個問題。 – SamDroid

回答

1

問題是IIS應用程序啓動的用戶「Application pass-trough」。 我改變了我的管理員用戶,它的作用就像一個魅力。 反正謝謝你。

+0

請您詳細說明您的意思是「應用程序傳遞」?我有類似的問題,我想我沒有權限訪問我的oracle客戶端應用程序。 – max

+0

@max嗨,轉到您的應用程序在IIS中,選擇設置,「連接爲」,更改您的用戶! – SamDroid

相關問題