在.NET OLE DB连接中连接到Oracle时发生LoaderLock错误

在.NET OLE DB连接中连接到Oracle时发生LoaderLock错误,.net,oracle,oledb,.net,Oracle,Oledb,我在VB.NET中有一个OLE DB连接,我正试图使用它连接到Oracle数据库。但是,我在con.Open()行中遇到以下错误: 检测到LoaderLock 正在尝试在OS加载程序锁内执行托管执行。请勿尝试在DllMain或映像初始化函数内运行托管代码,因为这样做可能会导致应用程序挂起 这是我的密码: Dim con As New OleDb.OleDbConnection ConfigConnection() Try con.ConnectionString = Connecti

我在VB.NET中有一个OLE DB连接,我正试图使用它连接到Oracle数据库。但是,我在con.Open()行中遇到以下错误:

检测到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和Access。当连接到其中任何一个时,它会成功连接,并且我没有收到此错误


我正在dll中执行此代码。如果我在exe中执行它,它可以正常工作。但是,我需要在这个dll中执行此命令。

这是一个调试器助手警告,因此如果您测试代码并发现它工作正常,您可能不需要担心它

我在调用DirectX时也看到过类似的情况,但是遵循网络上的所有建议来消除错误并没有什么区别——您调用的代码仍然会做它不应该做的任何顽皮的事情。为了消除它,我付出了很多努力,但两年后却没有发现一个问题,我把它放在了我的“忽略这个恼人的警告”栏里

您可以通过转到调试->异常来抑制警告。单击“查找”按钮并键入LoaderLock,然后取消选中它

但是只有在您已经彻底测试了应用程序并且绝对确信应用程序不会因为LoaderLock而失败的情况下,此建议才适用。然后,您可以自行决定是否愿意发布包含此潜在问题的程序

也许其他人能够提供更好的解决方案——我总是对忽视这种警告感到不安