win7下.NET串連oracle,提示錯誤OCIEnvCreate 失敗,傳回碼為 -1,但錯誤訊息文本不可用__編程

來源:互聯網
上載者:User

最近三天痛苦了,被oracle和.NET之間的串連頭都搞大了,經過不但的安裝和找原因,終於搞清楚了一下兩點:

(1)System.Data.OracleClient 需要 Oracle 用戶端軟體 8.1.7 或更高版本”

(2)System.Exception: OCIEnvCreate 失敗,傳回碼為 -1,但錯誤訊息文本不可用。

 

解決問題一:

一串連資料庫就出錯誤,剛開始彈出

“System.Data.OracleClient 需要 Oracle 用戶端軟體 8.1.7 或更高版本”

解決方案:剛開始我覺得我通過webservice調用遠程服務的oracle資料庫,我不操作oracle資料庫,因此,我本機上不需要安裝oracle資料庫,理論上覺得應該是這樣的,可是最後發現,這樣是不對的,結論:c#寫的webservice調用遠端oracle資料庫時,本機上也要安裝用戶端,而java則不需要。安裝用戶端後問題得到解決。

 

解決問題二:

win7下.net2008 串連oracle,提示錯誤OCIEnvCreate 失敗,傳回碼為 -1,但錯誤訊息文本不可用

 

在操作Oracle時出現以下錯誤:

   System.Exception: OCIEnvCreate 失敗,傳回碼為 -1,但錯誤訊息文本不可用。

   在 System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)  

   在 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)  

   在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)  

  在 System.Data.OracleClient.OracleConnection.Open()

 

我是通過webservice調用遠程伺服器的Oracle資料庫,本機沒有安裝Oracle

經過一天的網上找資料,不斷的調試和安裝,終於找到原因了:

一切的一切都是WIN7的安全模式,許可權問題,在win7下要用管理員身份運行所有的不相容軟體

 

 

解決方案:找到vs2008,右擊“以管理員身份運行”,啟動vs2008,然後開啟項目/解決方案,選中你的程式,運行,通過。

之所以彈出以上的錯誤,都是因為身份不夠,以管理員身份運行就OK了

總結:WIn7比XP多了個管理員權限,就是右擊程式有“以管理員身份運行”

因此,當你的程式,代碼在XP下能運行時,而在win7下彈出錯誤,就試試這個方法,在你的程式上右擊“以管理員身份運行”,一般都能解決問題。

 

PL/SQL也要用管理員身份運行,否則也是連不上。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.