Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>You will have to tell MassTransit how to store it's subscription info (for MSMQ).</p> <p>There are two choices: <code>MSMQ Multicast</code>, which keeps subscription information in memory, and <code>MSMQ Runtime Services</code> which stores the subscription information in a database, so it persists between sessions. </p> <p>Your choice of which to use will depend on whether you require permanent or temporary subscriptions - from <a href="https://masstransit.readthedocs.org/en/latest/overview/subscriptions.html#permanent-v-s-temporary-subscriptions" rel="nofollow">the docs</a>: </p> <blockquote> <p>Permanent subscriptions represent a subscription that you want to have stay around even if your process is shut down (maybe you are doing an upgrade and don’t want to miss a message). A temporary subscription is to be used in the case where you won’t care if you miss a message while shut down.</p> </blockquote> <p>There's no reason you couldn't use Multicast during development / PoC and switch to RuntimeServices later. The docs page also shows how to set up each in configuration, of course with RuntimeServices you also have to set up a database.</p> <p>(Note that Multicast can take a little while to set itself up, so you might need to give your test system a pause to warm up before you start pumping messages through it.)</p> <p>Edit: I've appended a couple of routines which validate the subscriptions and consumers: you would call the first while setting up subscriptions (ie during sbc.Subscribe) and the second once the bus is configured. Perhaps they will help find the problem?</p> <pre><code>private void ValidateSubscriptions(Configurator configurator) { var errors = configurator.Validate(); Console.WriteLine("Subscription Validation"); Console.WriteLine("-----------------------"); foreach (var err in errors.Where(e =&gt; string.IsNullOrEmpty(e.Value) == false)) { Console.WriteLine("Type: {0} Message: {1} Key: {2} Value: {3}", err.Disposition, err.Message, err.Key, err.Value); } } private static void ValidateBus(Configurator bus) { var errors = bus.Validate(); Console.WriteLine("Consumer Validation"); Console.WriteLine("-------------------"); foreach (var err in errors.Where(e =&gt; string.IsNullOrEmpty(e.Value) == false)) { Console.WriteLine("Type: {0} Message: {1} Key: {2} Value: {3}", err.Disposition, err.Message, err.Key, err.Value); } } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload