我有一个从事务MSMQ队列接收的应用。
自动模式适用于本地计算机上的队列,而 Single 模式则不适用。对于远程队列,则相反。在远程情况下使用自动,我在MessageQueueException
上收到了“无法导入交易” MessageQueue.Receive(..)
。
在docs中,我不明白为什么本地队列和远程队列之间的差异对于选择事务类型很重要。
Member name Description
---------------------------------------------------------------------------------
Automatic A transaction type used for Microsoft Transaction Server (MTS) or
COM+ 1.0 Services. If there is already an MTS transaction context,
it will be used when sending or receiving the message.
None Operation will not be transactional.
Single A transaction type used for single internal transactions.
谁能解释为什么仅一种模式在本地情况下起作用,而另一种在远程情况下起作用?
我使用以下格式名称
remote: FORMATNAME:Direct=OS:remote-machine\private$\myqueue
local : FORMATNAME:Direct=OS:.\private$\myqueue