2009-08-11 89 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的。然后,根据您的判断,您是否乐意发布带有此潜在问题的程序。

虽然也许别人能够提供更好的解决方案,但我总是对忽略这种警告感到不安。