メッセージをMSMQに送信するためのWCFサービスを作成しました。実行するとメッセージが送信されたように見えますが、キューを見てもそこにはありません。私は確認して、キューはトランザクションキューではありません。誰もがメッセージを送信できるようにセキュリティは公開されていますが、セキュリティを設定する他の場所があるのでしょうか?ここで私が使用しているコードです。WCFサービスを使用してMSMQにメッセージを送信する
Dim mq As MessageQueue
Dim msg As Message
Dim queueName As String = "webdevbvm.labsafety.com\emailsubscriptions"
Try
msg = New Message("Test")
msg.Priority = MessagePriority.Highest
If (MessageQueue.Exists(queueName)) Then
mq = New MessageQueue(queueName)
msg.ResponseQueue = mq
msg.UseJournalQueue = True
msg.Label = "Test Message"
msg.Body = "This is only a test"
mq.Send(msg)
Console.WriteLine("Message sent.")
End If
Catch ex As MessageQueueException
Console.WriteLine("MSMQ Error: " + ex.ToString())
Catch ex As Exception
Console.WriteLine("Error: " + ex.ToString())
Finally
mq.Close()
End Try
エラーは発生しませんが、プログラムを実行しているマシンからの送信キューのメッセージが表示されます。キューが存在することを示しています。存在しないキュー名に変更すると、IF文には入りませんので、キューにファイルが送信されていないことがわかります。もし私がラップトップ上でローカルにプログラムを実行していると、それが送信しているキューはWindows 2003サーバー上で実行されています。
「メッセージ送信済み」と表示されますか?あなたのconsole.writelineコマンドから? –
キューが存在しない場合はどうなりますか?ルーロウ......ブーム。 (psst:存在しない場合は、キューを作成するためのチェックを追加するか、エラーとして処理する)。 –
WCF関連のタグを削除しました – SteveC