ODP.NET代码崩溃于4.121但不是2.121-Windows服务-CommandBehavior.CloseCon



我有一个Windows服务的问题,它在试图处理以这种方式创建的读取器时崩溃:

drOra = cmdOra.ExecuteReader(CommandBehavior.CloseConnection)

处置在Finally块中,检查是否为空

If Not drOra Is Nothing Then drOra.Dispose()

即使我把它放进了一个陷阱,windows服务仍然崩溃了。

所以,我修改为使用USING语句,现在该块崩溃了。

我使用ODP.NET版本2.121而不是4.121暂时修复了它,但希望能深入了解为什么会发生这样的崩溃。我无法获得输出,因为它没有到达catch块。

它是非托管提供程序。

我重构了代码以正确关闭连接和适配器,并删除了CommandBehavior.CloseConnection引用。

一旦我做到了,一切都开始正常运转。

最新更新