When you run an application that requires a transaction, the managed XA Wrapper is called. The XA Wrapper is associated with unmanaged code. It works correctly only if the application is running in the default application domain of the CLR environment. If the application is running in another application domain, the associated unmanaged XA Wrapper incorrectly tries to load and call into the default application domain.
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.