我有一个WinForms / WCF / SQLServer应用程序,我正在尝试像这样使用MSDTC事务:
using System.Transactions;
// ...
var transOptions =
new TransactionOptions
{
IsolationLevel = IsolationLevel.ReadCommitted,
Timeout = TimeSpan.FromSeconds(120)
};
using (var scope = new TransactionScope(TransactionScopeOption.Required,
transOptions))
{
// ...
if (everything_is_ok)
scope.Complete();
}
在我的开发环境中,服务器和客户端进程在同一台机器上,这种情况下它运行良好。但是当我部署到QA环境中,即服务器和客户端在不同的机器上时,每当调用
scope.Complete()
时,客户端就会挂起超时时间(2分钟),然后我会收到以下错误信息:
无法取消流式事务。出现以下异常:与底层事务管理器的通信失败。
这可能是什么原因造成的?