使用 MSDTC 时 Windows 2019 上的实体框架异常



我们有2台服务器。一个盒子是在Windows Server 2016上运行的MS SQL Server 2017(14.0.3192.2(。另一个是运行EF 6.2.0的Web服务的Windows Server 2019盒子。 2019 盒子是新的,生产 Web 服务目前在 Win 2k12 R2 服务器上运行,没有问题。当 EF 需要在调用中执行多个事务时,听起来呼叫被提升为使用 MS 分布式事务处理协调器。 在新的 2019 服务器上,我们看到这些请求已中止。 我们在代码中看到的异常是"该操作对登记的当前状态无效"。我已经完成了所有的DTC故障排除,但一切似乎都检查出来了。我们不使用 Windows 防火墙,服务器之间也没有防火墙。本地 DTC 配置与我们现有的服务器匹配,dtcping.exe 工具报告服务器之间没有问题。如果我们关闭导致多个事务的代码,那么问题就会消失,因此一切都指向 EF 和 MSDTC 之间的问题。

我们也无法在我们的开发计算机上(Windows 10(上处理多个事务。 在较新版本的 Windows 中,EF 和 DTC 是否有可能出现问题,或者我们是否遗漏了某些内容?

我在 EF github 项目中询问,并被告知这可能更适合 sql 客户端团队而不是 EF。我也标记了sqlclient。

我们尝试拉取实体框架 6.3.0 预览版 9 nuget 包,并在新的 Windows 2019 服务器上对其进行了测试,神奇地 DTC 与作用域事务一起工作(不会中止(。EF 的 6.3.0 版本中的某些内容必须解决我们在使用 EF 6.2.0 公共 nuget 内部版本中止 DTC 事务时遇到的问题。

由于 6.3.0 仍处于预览状态,因此我们在此期间已回滚到 6.2.0,并关闭了我们的范围事务,直到 6.3.0 完全发布。我将更新有关此的 github 问题,以便开发团队知道。

相关内容

  • 没有找到相关文章

最新更新