Entity Framework Windows 2019 使用 MSDTC 时出现异常

Entity Framework Exception on Windows 2019 when using MSDTC

我们有 2 台服务器。一个是MS SQL Server 2017 (14.0.3192.2) 运行ning on Windows Server 2016。另一个是Windows Server 2019 box 运行ning EF 6.2.0 的 Web 服务。 2019 框是新的,生产 Web 服务 运行ning 在 Win 2k12 R2 服务器上目前没有问题。当 EF 需要在调用中执行多个事务时,听起来调用被提升为使用 MS 分布式事务处理协调器。在新的 2019 服务器上,我们看到这些请求被中止了。我们在代码中看到的异常是 "The operation is not valid for the current state of the enlistment"。我已经 运行 完成了所有 DTC 故障排除,但似乎一切正常。我们不使用 Windows 防火墙,服务器之间没有防火墙。本地 DTC 配置与我们现有的服务器相匹配,dtcping.exe 工具报告服务器之间的通信没有问题。如果我们关闭导致多个事务的代码,那么问题就会消失,所以一切都指向 EF 和 MSDTC 之间的问题。

我们也无法在我们的开发计算机上运行多个事务 (Windows 10)。在更新的 windows 版本中,EF 和 DTC 是否可能出现问题,或者我们是否遗漏了什么?

我在 EF github 项目中询问,被告知这可能比 EF 更适合 sql-client 团队。我也在上面标记了 sqlclient。

我们尝试下载 Entity Framework 6.3.0 预览版 9 nuget 包并在新的 Windows 2019 服务器上对其进行了测试,并且 DTC 神奇地与 Scoped Transactions 一起工作(不会中止) . EF 6.3.0 构建中的某些内容必须解决我们在使用 EF 6.2.0 public nuget 构建时中止 DTC 事务时遇到的问题。

由于 6.3.0 仍处于预览阶段,我们同时回滚到 6.2.0 并关闭了我们的作用域事务,直到 6.3.0 完全发布。我将更新有关此的 github 问题,以便开发团队知道。