Характер NServiceBus не гарантирует, что сообщения будут получены в том порядке, в котором они были отправлены. Каждое сообщение должно обрабатываться независимо.
Если действие может быть предпринято только после прибытия двух связанных сообщений, вам необходимо использовать Saga
Изменить в ответ на первый комментарий:
Вы упоминаете, что отправляете одно и то же сообщение кусками. Означает ли это, что у вас большая полезная нагрузка, которую нужно разделить на несколько частей для передачи через MSMQ?
Если это так, у вас есть несколько вариантов:
Хранить полезную нагрузку вне диапазона, в базе данных или файловой системе, и помещать достаточно данных только в одно сообщение (идентификатор или путь файловой системы) для загрузки данных из обработчика сообщений.
Сделать сообщение MessagePart, содержащим BundleID, PartNumber, TotalParts и PayloadChunk. Затем создайте сагу для MessagePart, в которой будут храниться все части, а когда все части будут получены, соберите куски вместе и сделайте то, что вам нужно. Конечно, если вам нужно затем отправить полученный большой объект обратно на шину, это очень быстро разозлится, так что опция out-of-band будет выглядеть намного привлекательнее.
В любом случае, существует масса причин, по которым любое сообщение MSMQ, а не только сообщения NServiceBus, может поступать не по порядку, поэтому вам придется иметь с ним дело.