到达时间的队列已经过去了

时间:2012-10-22 14:55:14

标签: transactions msmq messaging

我正在尝试使用PowerShell从错误队列向远程专用队列发送消息。 我使用的代码如下所示:

$msg = $src_q.Peek()
$msg.Label = GetLabelWithoutFailedQueue($msg)
$msg.UseDeadLetterQueue = $true
$msg.UseTracing = $true
$msg.AcknowledgeType = [System.Messaging.AcknowledgeTypes]::NegativeReceive
$msg.TimeToBeReceived = [System.TimeSpan]::FromSeconds(10)
$msg.TimeToReachQueue = [System.TimeSpan]::FromSeconds(10)
$tx = new-object System.Messaging.MessageQueueTransaction
$tx.Begin()
$dest_q.Send($msg, $tx)
$tx.Commit()

消息继续出现在事务性死信队列中,类别为:“到达时间队列已经过去”。 任何人都知道什么可能引发这样的错误?队列肯定存在 - 我设法偷看它。此外,我通过偷看从错误队列中获取消息的原因仅用于测试目的;我尝试用Receive做同样的事情,结果是一样的。

1 个答案:

答案 0 :(得分:1)

好的,看来你提供给MessageQueue构造函数的路径非常区分大小写;只要一个字符是大写字母就足够了,你就会发现自己处于类似的情况。

如果有人遇到这个问题,那么正确的格式是:FormatName:DIRECT=OS:machine_name\private$\queue_name我必须像今天这样完成格式名称。

确保machine_namequeue_name正确无误。

相关问题