Sib*_*Guy 5 .net database ado.net transactionscope system.transactions
跨不同的AppDomain和进程使用System.Transactions(主要是TransactionScope)是真的吗?
DependentTransaction仅在一个AppDomain内部工作.
是的,它有效.我们通过WCF流动事务,调用流程外事务COM +组件,并手动将事务从.NET 2.0 asmx Web服务传递到WCF服务.
现在,这并不是说设置不挑剔.我认为大多数问题都是在所有服务器上正确设置MSDTC.
UPDATE
我们不使用DependentClone.我们使用传递事务作为字节数组GetTransactionFromTransmitterPropagationToken.非常类似于在AppDomains上传播事务的第二个示例.
举个例子:
客户:
public void CallOutOfProcessAndPassTransaction
{
Client client = new Client();
client.DoSomethingTransactional(
System.Transactions.TransactionInterop.GetTransmitterPropagationToken(
System.Transactions.Transaction.Current)
);
}
Run Code Online (Sandbox Code Playgroud)
服务:
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();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1435 次 |
| 最近记录: |