代码之家  ›  专栏  ›  技术社区  ›  Ctznkane525

ODP.NET代码在4.121而不是2.121上崩溃-Windows服务-CommandBehavior.CloseConnection

  •  0
  • Ctznkane525  · 技术社区  · 7 年前

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

     drOra = cmdOra.ExecuteReader(CommandBehavior.CloseConnection)
    

    dispose在Finally块中,检查是否为空

     If Not drOra Is Nothing Then drOra.Dispose()
    

    即使我将它放入一个catch本身,windows服务仍然崩溃。

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

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

    它是非托管提供者。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Ctznkane525    7 年前

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

    一旦我这样做了,一切都开始正常工作。