我一直在做大量的阅读,其中一些文档似乎与现实无关。一些潜在的原因在这里是合适的,但它们只与 2008 年或更早的时间有关。
我定义了一个事务范围。我在事务范围内使用了许多不同的 EF 上下文(在不同的方法调用中),但是除了其中一个之外,它们都仅用于数据读取。Context的最终用途是创建并添加一些新对象到上下文中,然后调用
context.SaveChanges()
IIS 在一台服务器上运行。DB (Sql2012) 正在另一台服务器 (WinServer 2012) 上运行。
当我执行此代码时,我收到错误:
分布式事务管理器 (MSDTC) 的网络访问已被禁用。请使用组件服务管理工具在 MSDTC 的安全配置中启用 DTC 以进行网络访问。
显然,如果我在 IIS 机器上启用 DTC,这就会消失。但是我为什么需要?
这个:
http://msdn.microsoft.com/en-us/library/ms229978.aspx
状态:
• 在事务中登记了至少一个不支持单阶段通知的持久资源。• 在事务中登记了至少两个支持单阶段通知的持久资源
我的理解不是这里的情况。