Поиск по произвольному идентификатору в MSMQ? - PullRequest
1 голос
/ 08 февраля 2011

Есть ли способ назначить идентификатор сообщению в MSMQ, а затем найти это сообщение (если оно все еще находится в очереди) по этому идентификатору?

Будучи более конкретным, это должен быть уникальный идентификатор под моим контролем, а не что-то назначенное MSMQ.

Ответы [ 2 ]

3 голосов
/ 09 февраля 2011

Вы можете использовать свойство Label сообщения , если хотите использовать идентификатор, созданный до отправки сообщения.

Идентификатор LookupID сообщения недоступен, пока сообщение не будет отправлено.

2 голосов
/ 04 марта 2013

Почему бы не использовать CorrelationId?

var message = new Message(new Messageval(), new BinaryMessageFormatter());
message.CorrelationId = messageId;
queue.Send(message);

И затем получить сообщение как это:

var resp = (Messageval) queue.ReceiveByCorrelationId(messageId,
                                                     TimeSpan.FromSeconds(30))
                             .Body;

CorrelationId должен состоять ровно из 20 байтов, иначе при назначении будет выдано исключение.

...