title: Masstransit - No messages added to MSMQ when receiver service isn't started
body: <p>My application consists of an ASP.NET MVC 3 application and a Windows Service, both on the same box. The MVC application uses MassTransit to place messages on an MSMQ queue. The service uses MassTransit to read these messages from MSMQ and perform some work. When I load up the service and the application and have them running simultaneously, everything seems to work fine. However, if I load only the web application, my messages are not being added to MSMQ and essentially disappear. The odd thing is that if i load up my web application and then start and immediately stop said service, subsequent messages sent from the web app are added to the queue.</p>
  
  <p>There weren't many good/modern examples of using MassTransit with StructureMap and/or MVC, so it could be a problem with my configuration, but after a couple of hours of trial and error I am not sure how to proceed. I'm also may be misusing MassTransit - really what I need is a fire and forget solution from the web application...</p>
  
  <p>My service looks like this:</p>
  
  <pre><code>class Program
  {
      static void Main(string[] args)
      {
          Bus.Initialize(sbc =&gt;
          {
              sbc.UseMsmq();
              sbc.VerifyMsmqConfiguration();
              sbc.UseMulticastSubscriptionClient();
              sbc.ReceiveFrom("msmq://localhost/receiver");
          });
  
          ObjectFactory.Initialize(x =&gt;
          {
              x.AddRegistry(new EmailSenderRegistry());
          });
  
          var host = HostFactory.New(c =&gt;
          {
              c.SetServiceName("MyApp.EmailMessageReader");
              c.SetDisplayName("MyApp.EmailMessageReader");
              c.SetDescription("MyApp.EmailMessageReader");
  
              c.Service&lt;ClientService&gt;(a =&gt;
              {
                  a.ConstructUsing(service =&gt; new ClientService());
                  a.WhenStarted(o =&gt; o.Start());
                  a.WhenStopped(x=&gt;x.Stop());
              });
          });
  
          host.Run();
      }
  }
  
  internal class ClientService 
  {
      public void Start()
      {
          Bus.Instance.SubscribeConsumer&lt;EmailPrepService&gt;();
      }
  
      public void Stop()
      {
          // do nothing
      }
  }
  
  public class EmailPrepService : Consumes&lt;EmailMessage&gt;.All
  {
      public void Consume(EmailMessage message)
      {
          PrepareEmailForSending(message);
          var emailService = ObjectFactory.GetInstance&lt;IEmailSender&gt;();
          emailService.SendEmail(message);
      }
  }
  </code></pre>
  
  <p>My web application looks like this:</p>
  
  <pre><code>public class BusRegistry : Registry
  {
      public BusRegistry()
      {
          For&lt;IServiceBus&gt;().Singleton().Use(context =&gt; ServiceBusFactory.New(sbc =&gt;
          {
              sbc.ReceiveFrom("msmq://localhost/sender");             
              sbc.UseMsmq();
              sbc.UseMulticastSubscriptionClient();
              sbc.UseControlBus();
              sbc.Subscribe(subs =&gt; { subs.LoadFrom(context.GetInstance&lt;IContainer&gt;()); });
          }));            
      }
  }
  </code></pre>
  
  <p>Any help would be appreciated!</p>