Отправка сообщений в MSMQ с использованием службы WCF - PullRequest
0 голосов
/ 20 июля 2009

Я создал службу 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.

Ответы [ 2 ]

2 голосов
/ 20 июля 2009

Для меня это не похоже на службу WCF - кажется, вы используете базовый System.Net.Messaging API для отправки сообщения в свою очередь ....

Проверьте некоторые из этих ссылок, чтобы узнать, как использовать WCF для отправки сообщений в MSMQ:

Марк

1 голос
/ 20 июля 2009

Спасибо, Марк, за ваш ответ, но я понял, что нужно сделать. В основном я использовал неправильное имя очереди. У меня не было «FormatName: DIRECT = OS:» перед именем очереди. Однажды я сказал, что это было хорошо. еще раз спасибо.

Роберт

...