0

我正在尝试使用 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 做同样的事情,结果是一样的。

4

1 回答 1

1

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

如果有人遇到这种情况,那么正确的格式是:FormatName:DIRECT=OS:machine_name\private$\queue_nameFormatName 必须像我在这里所做的那样采用驼峰式。

确保machine_name并且queue_name是正确的。

于 2012-10-23T10:58:04.977 回答