Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何防止在NServiceBus中意外标记受抑制的作用域事务?_Nservicebus - Fatal编程技术网

如何防止在NServiceBus中意外标记受抑制的作用域事务?

如何防止在NServiceBus中意外标记受抑制的作用域事务?,nservicebus,Nservicebus,我试图发送一条简单的消息,但它似乎自动被标记为没有事务作用域()。 端点正在运行SQL传输(3.0.1)和NSB 6.1.2,SQL传输在默认事务模式(TransactionScope)下运行 据我所知,尚未对此采取任何具体行动,我唯一能想象的是,连接字符串与Dapper共享,Dapper也对数据库执行了一些等待的查询 var data = await Provider.GetSomeRandomData(message.DataId); bool synced = false; await c

我试图发送一条简单的消息,但它似乎自动被标记为没有事务作用域()。 端点正在运行SQL传输(3.0.1)和NSB 6.1.2,SQL传输在默认事务模式(TransactionScope)下运行

据我所知,尚未对此采取任何具体行动,我唯一能想象的是,连接字符串与Dapper共享,Dapper也对数据库执行了一些等待的查询

var data = await Provider.GetSomeRandomData(message.DataId);
bool synced = false;
await context.Reply(new RandomMessage());
如果使用
TransportTransactionMode.SendsAtomicWithReceive
配置端点,则启用
TransportTransactionMode.TransactionScope
时,会发生日志记录(当然,实际效果可能也会丢失)


理想情况下,提供者将(以某种方式)使用NServiceBus正在使用的同一事务,但为了查询数据,它需要以某种方式脱离此事务上下文,在不中断NServiceBus事务的情况下查询数据库(如果这确实是个问题),这样写操作仍将被处理。

您能否尝试添加
。ConfigureAwait(false)

wait context.Reply(新的随机消息())
.配置等待(错误)


这能解决问题吗?

这可能是我自己的无知!查询数据是否会破坏此事务范围?最好我能处理发送和接收,加上对数据库的任何写入(但不是读取)。你能分享你的代码吗?我不确定我是否理解这个问题…@SeanFarmar添加了一些示例代码(非常类似)和描述。我确信是我没有100%正确地调整我的事务,但任何帮助都将不胜感激(理想情况下,
部分就是目标所在)