Я создаю службу Windows на C#.Получение сообщений MSMQ с помощью службы Windows
Каков наилучший способ прослушивания сообщений? Как я правильно это кодирую ??
Я создаю службу Windows на C#.Получение сообщений MSMQ с помощью службы Windows
Каков наилучший способ прослушивания сообщений? Как я правильно это кодирую ??
Вы не слушаете. Вы настраиваете MSMQ Activation для активации вашего компонента при поступлении сообщений. Ссылка содержит всю необходимую информацию, код и конфигурацию.
Как было сказано ранее, активация MSMQ, вероятно, является лучшим способом, если вы можете использовать это. В качестве альтернативы, вот код, который я использовал:
var ts = new TimeSpan(0, 0, 10);
MessageQueue q = GetQueue<T>();
while (true)
{
try
{
Message msg = q.Receive(ts);
var t = (T)msg.Body;
HandleMessage(t);
}
catch (MessageQueueException e)
{
// Test to see if this was just a timeout.
// If it was, just continue, there were no msgs waiting
// If it wasn't, something horrible may have happened
}
}
Если вы используете функцию перечислителя сообщений вместо Receive, вам не нужно беспокоиться о получении тайм-аутов, когда очередь пуста. –
Очень хорошие консультации! Я проработал неделю, и мы знаем, что это такое, как пытаться вернуться в проект, но я попробую кое-что. Grauenwolf, не могли бы вы привести краткий пример получения? Я исследовал это, и я не совсем понимаю это. Особенно после отпуска в течение недели. Спасибо .... –
Возможно, вы захотите упомянуть о местонахождении метода 'GetQueue
Да, это был мой первый выбор. Послушайте здесь мой другой вопрос. http://stackoverflow.com/questions/1473179/msmq-not-invoking-com –
Активация COM - это модель MSMQ 3. С MSMQ 4 появилась новая модель активации, основанная на Windows Activation Service и WCF. –
Я изучу службы активации. –