The new article titled "Building Distributed Applications with NHibernate and Rhino Service Bus" no doubt shows one of the best implementation of a Client / Service architecture, so If you haven't checked it out, it is a must read. The problem, however, is that in certain scenarios it may not work out of the box and you need additional configuration on your client / server to make it work.
I was to make Rhino Service Bus work with NHibernate the other day. Although, Nhibernate and Rhino Service Bus each work flawlessly, when coupled together the problem started. What I wanted to do was simple. Gather some orders to make a package large enough for shipment gateway to process.
When working with Rhino Service Bus, the application kept crashing as I hit the database. The exception message says that MSDTC is disabled. It turns out this is because of the tightened security on Windows XP SP2 and DTC services and the problem would manifest if your running your data access services on a separate machine other than your DB and instanciate a new transaction using TransactionScope in your services.
In the middle of investigating the new Rhino Service Bus (more on this on later posts), I was trying to create a console application that'd act like a Console Application Server.