2016-04-15 66 views
0

我想用我的C#應用​​程序連接到遠程Oracle數據庫,但是當涉及到oracleconnection.open()將其與OracleConnection.Open()AccessViolationException當嘗試連接到Oracle數據庫

退出

AccessViolationException未處理 - 試圖讀取或寫入受保護的內存。這通常表示其他內存已損壞

我的連接字符串爲key="oracleconnectionstring" value="Data Source=XYZ; password=mypassword; User ID=myuserid",位於app.config文件中。

在tnsnames.ora是

XYZ = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = HostName)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
     (SERVICE_NAME = XYZ) 
    ) 
) 

如果我嘗試通過SQL開發人員把它連接沒有任何問題,如果我嘗試sqlplus中它只是崩潰(在SQL * Plus已停止工作),如果我嘗試連接VS它給了我那個奇怪的錯誤。

它可能是什麼?

編輯:如果我嘗試tnsping xyz返回OK(100ms);

+0

請發佈您正在使用的代碼連接 - 您使用的是哪個oracle連接庫 - 您嘗試了什麼? – Wjdavis5

+0

我正在使用Oracle.DataAccess版本4.112.2.0 Runtime v4.0.30319;代碼從配置文件獲取連接字符串,然後執行: 'oracleconnection = new OracleConnection(oracleconnectionstring); oracleconncetion.Open();' – Nedo2490

+0

當我在調試中分析connectionstring時,它似乎從配置中獲得正確的元素; – Nedo2490

回答

0

最後,我管理完全安裝了Oracle Client和ODT for VisualStudio並且它工作,我現在永遠不會遇到這個問題。