2009-08-11 110 views
0

我嘗試使用VB.NET中的OLE DB連接來連接到Oracle數據庫。不過,我得到的con.Open()線以下錯誤:檢測在.NET OLE DB連接中連接到Oracle時發生LoaderLock錯誤

LoaderLock試圖在OS加載程序鎖內管理的執行。不要試圖在DllMain或圖像初始化函數中運行託管代碼,因爲這樣做會導致應用程序掛起。

這裏是我的代碼:

Dim con As New OleDb.OleDbConnection 

ConfigConnection() 

Try 
    con.ConnectionString = ConnectionString 
Catch ex As Exception 
    MsgBox("Invalid connection string) 
    Return 
End Try 

Try 
    con.Open() 
    MsgBox("Connection attempt successfull!") 
Catch ex As Exception 
    MsgBox("Unable to connect to data source.") 
End Try 

我使用相同的代碼連接到各種其他類型的數據庫,包括SQL Server,Excel和訪問。當連接到任何它連接成功,我沒有得到這個錯誤。

我在一個DLL中執行此代碼。如果我在exe中執行它,它工作正常。但是,我需要在此dll內執行此操作。

回答

1

這是一個調試助手警告,所以如果你測試你的代碼並發現它工作正常,你可能不需要擔心它。

我在調用DirectX時看到過類似的事情,但遵循網絡上的所有建議以消除錯誤沒有任何區別 - 您調用的代碼仍然會執行任何不應該做的調皮的事情。經過大量的努力試圖消除它,但沒有看到它在兩年後造成的單個問題,我把它提交到我的「只是忽略這個令人討厭的警告」斌。

您可以通過轉到Debug - > Exceptions來禁止警告。單擊查找按鈕並鍵入LoaderLock,然後取消選中它。

此建議僅適用IF你已經徹底的測試您的應用程序和絕對確保應用程序永遠不會失敗,因爲LoaderLock的。然後,根據您的判斷,您是否樂意發佈帶有此潛在問題的程序。

雖然也許別人能夠提供更好的解決方案,但我總是對忽略這種警告感到不安。