msdtc相关内容

单个事务下具有相同连接字符串的多个连接,提升事务?

当使用 ado.net 并在单个事务中创建到 MS SQL Server 数据库的多个连接(使用 System.Transactions.TransactionScope)时,System.Transactions 是否将事务从轻量级事务管理器提升到分布式事务协调器(Vista 上的内核事务协调器),即使所有连接对象的连接字符串都相同? 文档在这种特定情况下有些含糊不清.它表示如果在事务期间 ..
发布时间:2022-01-06 20:48:17 C#/.NET

SqlConnection 并避免升级到 MSDTC

当我们需要在我们的应用程序中进行数据库访问时,我们使用以下模式: 为了查询,我们有一个带有方法 CreateOpenConnection 的静态工厂类,它只执行 new SqlConnection(myConnectionString) 并调用 Open()代码>就可以了.在我们执行查询之前调用此方法,并在查询返回后处理连接. 对于插入/更新/删除,我们使用工作单元模式,其中更改被批处理并 ..
发布时间:2022-01-03 23:09:24 C#/.NET

EF:如何在事务中两次调用 SaveChanges?

使用实体框架(在我的例子中是代码优先),我有一个操作需要我调用 SaveChanges 来更新数据库中的一个对象,然后再次调用 SaveChanges 来更新另一个对象.(我需要第一个 SaveChanges 来解决 EF 无法确定首先更新哪个对象的问题). 我尝试过: using (var transaction = new TransactionScope()){//做一点事db.Sa ..

TransactionScope 在某些机器上自动升级到 MSDTC?

在我们的项目中,我们使用 TransactionScope 来确保我们的数据访问层在事务中执行它的操作.我们的目标是不要求在我们最终用户的机器上启用 MSDTC 服务. 问题是,在我们一半的开发人员机器上,我们可以在禁用 MSDTC 的情况下运行.另一半必须启用它,否则他们会收到 “[SERVER] 上的 MSDTC 不可用" 错误消息. 这真的让我摸不着头脑,让我认真考虑回滚到基于 ..
发布时间:2021-12-01 09:57:14 C#/.NET

如何在 EF DbContext 和 AspNet Membership 之间共享连接以避免事务升级到 DTC

我有一个 ASP.NET MVC3 应用程序,它使用 EF 4.1 DbContext,数据库优先数据层.EDMX 方法工作正常,因为我倾向于在使应用程序适应它们之前对我的数据模型进行更改.该应用程序可以与包含元数据引用的特殊 EF 连接字符串一起正常工作. 但是,美中不足.该应用程序还使用需要标准连接字符串的 ASP.NET 成员资格和角色.我有几个用例涉及成员资格表和其他(EF 管理的) ..

与底层事务管理器的通信失败.MSDTC

我有两个系统,一个是 Windows 7 Enterprise,其中安装了我的应用程序,我有 Windows Server 2008 R Sp1 机器,其中数据库已集成. 访问与底层事务管理器的数据库通信失败时出现以下错误.由于通信问题,MSDTC 事务管理器无法从源事务管理器中提取事务.可能的原因是:存在防火墙并且它没有 MSDTC 进程的例外,两台机器无法通过它们的 NetBIOS 名称 ..
发布时间:2021-09-27 18:32:16 其他开发

如何修复分布式事务管理器 (MSDTC) 已禁用错误

我们正在使用 ASP.NET 的事务范围功能来管理分布式事务,为此我们需要通过以下链接启用分布式事务: 合作伙伴事务管理器已禁用它对远程/网络事务的支持 它在 SQL Server 2005 和 Windows Server 2003 上运行良好,但是当涉及到 Windows Server 2008 服务器和 SQL Server 2005 时,我们收到以下错误,我们仍然按照上面链接中提供 ..
发布时间:2021-09-27 18:31:18 数据库

为什么 SQL Server 中的分布式事务不支持快照隔离

问题在标题中.我只是想了解为什么不支持此功能? 只是为了澄清这是 MS Sql Server 2005/2008. 解决方案 因为它可能不一致,而且开箱即用比基于锁的隔离 (ANSI SQL) 更弱. 或者,缺点(例如这个银行业务示例)需要更多的工作和考虑让事情保持正确,所以不支持它更安全. 最后(我没查过),是在ANSI标准中吗?这可能是一个非常定制的解决方案,您将无法 ..
发布时间:2021-09-09 19:12:55 数据库

由于通信问题,MSDTC 事务管理器无法从源事务管理器中提取事务

我在服务器 1 上托管了我的 Webapp,在服务器 2 上托管了我的数据库 但是我遇到以下错误 “与底层事务管理器的通信失败." 我用谷歌搜索并发现一个帖子,其中提到这是 DTC(分布式事务)的问题我在 server2(DB 服务器)上启用了 DTC,并在防火墙中例外. 但还是一样的错误. 这是完整的堆栈跟踪 消息:System.Transactions.Tr ..

跟踪事务升级到 DTC 的原因

有什么方法可以准确地确定 System.Transaction TrasactionScope 被升级到 DTC 的原因?我们的一个组件遇到了问题,其中一个组件似乎会升级事务,而所有其他组件(看似看似相似)却不会升级. 是否提供有关升级原因的任何信息,以及如何找到和观察这些原因?SQL探查器?日志文件?还是我在这方面不走运? 更新:我正在运行 SQL Server 2005 以获取信息 ..
发布时间:2021-09-09 19:00:30 其他开发

在 DTC 事务中登记 SSIS 包的间歇性失败

我们的软件包随机失败并显示以下错误消息: SSIS 错误代码 DTS_E_OLEDBERROR.发生 OLE DB 错误.错误代码:0x8004D00A.COM 错误对象信息可用.来源:“[Some Package Name]"错误代码:0x8004D00A 描述:“SSIS 运行时未能登记 OLE DB 连接在分布式事务中,错误为 0x8004D00A“无法在事务中登记." 这种情况 ..
发布时间:2021-08-27 20:13:46 其他开发

为什么 SSIS Runtime 启动分布式事务失败?

在为 SQL Server 2008 创建 SSIS 包时,我遇到了以下错误: 错误:SSIS 运行时未能启动到期的分布式事务错误 0x8004D01B “交易经理不可用.".DTC事务无法启动.这个可能是因为 MSDTC 服务没有运行. 我正在我的机器上本地创建和运行程序包,但数据库位于运行 Windows Server 2008 的服务器上,该服务器不在域中. 我已确保在本地 ..
发布时间:2021-08-27 20:13:03 数据库

如何检测回滚已经发生?

我正在寻找大型业务应用程序中的一个错误,其中业务流程失败但部分保留到数据库中.为了让事情更难弄清楚,该过程每隔几周才会失败一次,在每次失败之间成功处理了数十万次.当并发/工作进程数增加时,错误频率似乎也会增加. 到目前为止,我们已经能够通过该程序重现我们所看到的内容.(.NET 4.7.1 框架) using (var transactionScope = new TransactionS ..
发布时间:2021-08-25 20:54:26 C#/.NET

无法开始分布式事务

我正在尝试针对链接服务器运行 SQL,但出现以下错误: 开始分布式交易SELECT TOP 1 * FROM SessionsOLE DB 提供程序“SQLNCLI"用于链接服务器“ASILIVE"返回消息“没有事务处于活动状态.".Msg 7391, Level 16, State 2, Line 3由于 OLE DB 提供程序“SQLNCLI"无法执行该操作用于链接服务器“ASILIVE"无 ..

如何在 SQL Server 上启用 MSDTC?

这甚至是一个有效的问题吗?我有一个使用 MSTDC 的 .NET Windows 应用程序,它抛出异常: System.Transactions.TransactionManagerCommunicationException:分布式事务管理器 (MSDTC) 的网络访问已被禁用.请启用 DTC使用组件服务管理工具在 MSDTC 的安全配置中进行网络访问 ---> System.Runtim ..
发布时间:2021-08-25 18:53:01 数据库

NServiceBus:System.Transactions.TransactionException:合作伙伴事务管理器已禁用对远程/网络事务的支持

当我尝试从 IHandleMessages 实现的 Handle(T value) 方法中将记录保存到数据库时,我的 订阅者 收到此异常.有谁知道为什么会这样?我想我记得 NServiceBus 使用分布式事务来使消息处理成为事务性的,但我不知道为什么在两台机器上运行“RunMeFirst.bat"文件后它不只是“工作". 有什么想法吗? 解决方案 找到了答案.看起来我需要在 MSD ..
发布时间:2021-06-09 19:54:31 其他开发

.NET TransactionScope和MSDTC

在我的代码中,有一些事务要处理: 使用(var scope = new TransactionScope()){repo1.SaveSomething();repo2.SaveAnythingElse();scope.Complete();} 在repo1和repo2函数内部,使用事务来处理它们,并创建它们自己的db上下文,并将它们处置起来就像是一种魅力. 现在,我添加另一个这样的代码 ..