我在VB.NET中有一个OLE DB连接,我试图用来连接到Oracle数据库。但是,我在con.Open()行上收到以下错误:
检测到LoaderLock
在OS Loader锁中尝试托管执行。不要尝试在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中执行它。
答案 0 :(得分:1)
这是一个调试器助手警告,所以如果你测试你的代码并发现它工作正常,你可能不需要担心它。
我在调用DirectX时看到了类似的事情,但是遵循网络上的所有建议来消除错误没有区别 - 你所调用的代码仍然做任何不应该做的顽皮的事情。在努力消除它之后付出了很多努力,但是在2年后没有看到由它引起的单一问题,我在“只是忽略这个恼人的警告”垃圾箱中提交了它。
您可以转到Debug - >来抑制警告。例外。单击“查找”按钮并键入LoaderLock,然后取消选中它。
但是此建议仅适用于 IF 您已对应用程序进行了全面测试,并且绝对确保应用程序永远不会因为LoaderLock而失败。然后由您自行决定是否乐意发布您的程序中存在这个潜在问题。
也许其他人可以提供更好的解决方案 - 我总是对忽略这种警告感到相当不安。