gpt4 book ai didi

.net - 跨 AppDomains 和进程的 TransactionScope

转载 作者:太空狗 更新时间:2023-10-30 01:51:02 24 4
gpt4 key购买 nike

跨不同的 AppDomains 和进程使用 System.Transactions(主要是 TransactionScope)是真的吗?

DependentTransaction仅在一个 AppDomain 内工作。

最佳答案

是的,它有效。我们通过 WCF 传输事务,调用进程事务性 COM+ 组件,并手动将事务从 .NET 2.0 asmx Web 服务传递到 WCF 服务。

这并不是说设置不挑剔。我认为大部分问题都与在所有服务器上正确设置 MSDTC 有关。

更新

我们不使用 DependentClone。我们使用 GetTransactionFromTransmitterPropagationToken 将交易作为字节数组传递。与 Propagating a Transaction Across AppDomains 的第二个例子非常相似.

举个例子:

客户:

public void CallOutOfProcessAndPassTransaction
{
Client client = new Client();

client.DoSomethingTransactional(
System.Transactions.TransactionInterop.GetTransmitterPropagationToken(
System.Transactions.Transaction.Current)
);
}

服务:

public void DoSomethingTransactional(byte[] tx)
{
using (TransactionScope ts = new TransactionScope(
TransactionInterop.GetTransactionFromTransmitterPropagationToken(tx)))
{
// Do Something

// vote to commit the transaction if the caller also agrees
ts.Complete();
}
}

关于.net - 跨 AppDomains 和进程的 TransactionScope,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5348242/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com