wcf - WCF 是否支持异步操作在 TransactionScope 内调用?

标签 wcf asynchronous transactionscope

我正在尝试 WCF 事务的实现,并提出了 WCF 4.0 是否支持异步事务的想法。

例如,
我有几个启用了客户端\服务事务的服务操作,在客户端,我使用 TransactionScope 并在事务内创建任务来异步调用这些操作。

在这种情况下,我假设事务将正常工作,对吗?

最佳答案

我非常怀疑这一点。如果您开始异步操作,您似乎不再参与原始事务。
我写了一点 LINQPad 测试

void Main()
{
    using (var scope = new TransactionScope(TransactionScopeOption.Required))
    {
    try
    {
        Transaction.Current.Dump("created");
        Task.Factory.StartNew(Test);
        scope.Complete();
    }
    catch (Exception e)
    {
    Console.WriteLine(e);
    }
    Thread.Sleep(1000);
}

Console.WriteLine("closed");
Thread.Sleep(5000);
}


public void Test()
{
using (var scope = new TransactionScope(TransactionScopeOption.Required))
    {
    Transaction.Current.Dump("test start"); // null
    Thread.Sleep(5000);
    Console.WriteLine("done");
    Transaction.Current.Dump("test end"); // null
    }
}

关于wcf - WCF 是否支持异步操作在 TransactionScope 内调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10890569/

相关文章:

wcf - 无法看到 'Add Application Insights Telemetry to Project' 的选项

c# - 任务以及如何正确使用它们 C#

javascript - 在页面加载时使用 async/defer 加载多个 Jquery 文件

c# - 在异步/等待代码中重新分配 Transaction.Current 时上下文丢失

c# - 了解事务范围超时

c# - 具有数据库事务的工作单元模式

c# - 无法在非域上访问服务 Windows 7 自托管 WCF 应用程序

wcf - 在 .NET 4 中使用 JSON.NET 和 RESTful WCF 服务

javascript - 如何通过任何扩展/附加组件绕过ajax调用中的CORS

javascript - API调用 react ,componentDidUpdate或eventHandler中的事件?