.net 使用MSDTC和实体框架的提供程序失败

更新时间:2024-05-09 下载TXT文档 下载Word文档

我有一个应用程序,它保存到数据库(使用Entity Framework),并且一次保存即可将文档保存到Sharepoint。 我正在尝试将MSDTC与TransactionScope一起使用。

我的EF插入逻辑的一部分包括将外键列表传递到数据层。 该层从数据库中检索"外键"对象,然后将其添加到主对象中。 奇怪的是,这对于第一个外键项正确运行,但在第二个失败,并显示以下消息。

System.Data.EntityException: The underlying provider failed on Open.
---> System.Transactions.TransactionManagerCommunicationException: Network access for Distributed Transaction Manager (MSDTC) has been
disabled. Please enable DTC for network access in the security
configuration for MSDTC using the Component Services Administrative
tool.

MSDTC已启用并且在第一次通过过程中起作用,但在第二次通过过程中不起作用。 我假设在进行几个选择调用时上下文会以某种方式变得混乱?

这是我的逻辑: 短码网:DuanMa.NET

//Create new order

foreach(int lineItemId in lineItems)
{
   //Retrieve the LineItem object from db
   //Add the LineItem object to the Order
}

//Save using EF

也许我不应该从数据库中检索对象? 我是否缺少在EF中引用关系的简单方法?

您需要数据库服务器,Sharepoint服务器和运行该代码的计算机上的DTC才能运行并启用网络访问权限(在"组件服务"管理单元的Distributed Transaction Coordinator节点上,右键单击"属性",确保< 检查x1>,并在每台计算机上检查Allow Remote Clients以及"入站和出站"通信(您可以删除其中一些,但首先使其工作)。

第一次呼叫之所以有效,是因为它仅与本地DTC进行通话-一旦它尝试使用远程DTC征募TX,它就会失败。

这实际上与马特(Matt)的答案相同,但图形化

enter image description here

以上就是短码网小编为大家整理的《.net 使用MSDTC和实体框架的提供程序失败》相关内容,希望大家喜欢。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若内容造成侵权/违法违规/事实不符,请将联系本站反馈,一经查实,立即处理!

.net 使用MSDTC和实体框架的提供程序失败》文档下载仅供参考学习,下载后请在24小时内删除。

转载注明出处:https://www.duanma.net/article/3b147ca7171.html

回到顶部