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 コンストラクターに指定するパスは、大文字と小文字が非常に区別されるようです。1 つの文字が大文字であり、同様の状況に陥るには小文字にする必要があるだけで十分です。

誰かがこれに出くわした場合、正しい形式は次のFormatName:DIRECT=OS:machine_name\private$\queue_nameとおりです。ここで行ったように、FormatName をキャメルケースにする必要があります。

正しいことを確認machine_nameしてくださいqueue_name

于 2012-10-23T10:58:04.977 に答える