The good news - I got the transaction unit testing code to work. Two traps that caught me out:

  1. Make sure the test fixture class inherits from the class defined in the transaction library assembly.
  2. Make sure your machine has a valid DNS entry! Turns out mine didn’t as I’d reinstalled the OS a couple of months back, and our Active Directory DNS had kept the old record with a SID for the old machine - hence the new install had a different SID and wasn’t allowed to update the DNS record. This had the effect that the remote server could not resolve my workstation to get the RPC conversation working properly.