背景: 我们有一个在 .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) 已取消分布式事务。
有谁知道发生了什么?