我的WCF服务方法需要在从客户端流向服务的事务中执行并发任务。为了使事务范围能够流经线程,我在发送对服务的调用之前,在事务范围类的构造函数中启用了TransactionScopeAsyncFlowOption。
using (var transaction = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
{
//service call here. Async flow option has no effect on service side.
}
事务从客户端流向服务但它无法流向子任务。但是,如果我在服务中创建新的事务范围并在其中启用其异步流,则事务将流向子任务。所以我的问题是,为什么TransactionScopeAsyncFlow选项对服务端的事务没有影响?它不应该采用客户端事务范围设置,因此不需要在服务中创建新的事务范围只是为了启用其异步流吗?