Quite a few changes in this release. The best part is that the majority of the changes came from the community.


  • Rhino.ServiceBus.RhinoQueues transport has been separated out to its own assembly and nuget package
    • This gives us a lot more flexibility going forward to add new types of transports
  • Delivery Options for outgoing messages
    • Useful when dealing with clients that are not reliable and messages that do not need guaranteed delivery
    • For the MSMQ transport this is limited to MaxAttempts of 1
    • For Rhino Queues transport you can specify DeliverBy, and MaxAttempts when sending
  • Removed log4net dependency in favor of Common.Logging
  • Updates to Windsor and Autofac container


  • MSMQ Load Balancer fixes
  • Rhino Queues under certain conditions would not shutdown properly
  • Rhino Queues queue path expansion
  • Rhino Queues changes to the way sending deals with connection timeouts, which before would cause sending thread to become unresponsive for long periods of time

How to update

Build failures will occur for some items in Bootstrapper, and if you used IWireEcryptedString. You will find the fixes to be fairly self discoverable.

Refer to Common.Logging documentation. You’ll find the API and configuration very similar to log4net.

I will provide a separate followup post on the new delivery options. Or if you’re impatient have a glance at the tests.

If you’re using Rhino.Queues transport you will need to add some configuration to tell RSB to load your transport. If you’re using nuget there is a config transform that will do this for you. If not, there is a sample below.


A big things to the contributors that helped with this release Ryan Hauert, Sky Morey, Miles Waller, Matt Burton, Jakub Berezanski, and Timothy Herrera.