问题描述
我们的应用程序使用C#、. NET Framework 4.51和sql Server 2012。
The Microsoft distributed Transaction Coordinator (MS DTC) has cancelled the distributed transaction.
代码:
using (TransactionScope scope = new TransactionScope())
{
DbConnection conn = db.CreateConnection();
conn.open();
foreach (ArchiveJobInfo archinfo in Archives)
{
using (sqlCommand cmd = GetCommandProc(db,archinfo.StoredprocName,archinfo.JobUtilID,JobParm.BatchId))
{
cmd.CommandTimeout = 0;
cmd.Connection = (sqlConnection)conn;
Int32 returnValue = db.ExecuteNonQuery(cmd);
}
}
scope.Complete();
}
存储过程代码具有许多在不同表中的DELETE和INSERT INTO。
这些是存储过程中的一些代码:
begin transaction
INSERT INTO myTable (col1,col2,...) SELECT (col1,...) FROM anotherTable WHERE myDate < DATEADD(Day,-1825,getdate())
select @error=@@error
if @error <> 0
begin
select @text= @text+ 'my text'
rollback transaction
raiserror (@text,-1,30001)
return 1
end
commit transaction
是什么原因导致错误“ Microsoft分布式事务处理协调器(MS DTC)已取消分布式事务处理”,我该如何解决?
我们不使用链接服务器。
谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)