При создании новой «транзакционной» очереди мне сначала нужно выяснить, существует ли какая-либо «нетранзакционная» MessageQueue
с тем же именем или нет. Если это так, мне нужно скопировать сообщения из старой очереди в новую транзакционную очередь.
Для этого (когда я нахожу старую очередь с тем же именем):
1. Я создаю временную очередь (которую я нашел созданной по умолчанию как Transactional).
2. Я перебираю сообщения из старой очереди и отправляю их в новую очередь.
3. Удаление старой очереди
4. Создание новой транзакционной очереди.
5. перебирая сообщения из временной транзакционной очереди и отправляя их в новую очередь.
6. Удаление временной очереди
Сообщения отправляются из старой очереди в новую очередь без каких-либо исключений. Однако, когда я пытаюсь прочитать тело сообщения как message.Body
Body = 'message.Body' бросил
исключение типа
'System.InvalidOperationException'
Невозможно десериализовать переданное сообщение
в качестве аргумента. Не могу распознать
формат сериализации
Как я могу выполнить указанное требование и что может пойти не так в моем подходе?
Я новичок в MSMQ.
(С использованием Windows XP, Visual Studio 2008, .NET 2.0)