【发布时间】:2012-07-16 22:53:43
【问题描述】:
背景: 我们有一个在 .NET framework 2.0 下开发的网站,它使用了一个用 Sql Server 2005 创建的数据库。我们还有一个在 .NET framework 4.0 下开发的网站,这个网站使用了一个用 Sql Server 2008 创建的数据库。我们链接两个数据库(从 Sql Server 2005 到 Sql Server 2008)创建“Sql Server 2005 数据库上的链接服务器”。
场景: 当我们在 Sql Server 2005 中托管的数据库上创建记录时,我们有以下事务序列: 将记录插入到 Sql Server 2005 数据库中托管的表中。 此插入在插入后执行触发器。 在触发器内部,我们执行一个存储过程(托管在 Sql Server 2008 数据库中),这个存储过程是使用“链接服务器”执行的。 此存储过程执行插入到托管在 Sql Server 2008 数据库中的表中。 如果我们使用 Sql Server Management Studio 2005 手动执行插入到托管在 Sql Server 2005 数据库中的表中,一切都会很好地执行,但是如果我们尝试使用网站的 UI (.NET 2005) 创建记录,我们会得到这个错误:
当前事务无法提交,也无法支持写入日志文件的操作。回滚事务。 Microsoft 分布式事务协调器 (MS DTC) 已取消分布式事务。
有人知道发生了什么吗?
【问题讨论】:
标签: sql-server-2008 sql-server-2005 .net-2.0 asp.net-2.0 linked-server