交易发送和接收

时间:2015-03-26 14:42:13

标签: servicebus

是否可以从一个队列执行接收,并在同一个事务中发送给另一个队列? e.g:

using (var tx = new TransactionScope())
{
    var inMsg = recv.Receive();
    var val = msg.GetBody<int>();
    var outMsg = new BrokeredMessage(val + 1);
    sender.Send(outMsg);
    inMsg.Complete();

    tx.Complete();
}

以上似乎给了我一个例外,暗示这是不可能的:

  

“交易可能已经超时或试图跨越多个顶级实体,例如队列或主题。”

但这肯定是一个非常普遍的要求?有办法解决这个问题吗?

(这是使用Service Server for Windows Server,如果这有所不同)

1 个答案:

答案 0 :(得分:0)

只有一个顶级消息传递实体能够参与交易。

此处有更多信息

http://geekswithblogs.net/asmith/archive/2012/04/02/149176.aspx