Recently Don Boxblogged about the System.Transactions namespace and how it would bring transactional goodness to the .NET Framework 2.0 users in the future. He then continued to show a class that will give you behavior similar to transactions with Services without Components (SwC). You would need something like Don’s class because SwC is not available on Windows XP prior to SP2.
The key .NET class here is called System.EnterpriseServices.ServiceConfig. That class will normally throw a PlatformNotSupported exception if you try to instantiate it on a Windows XP machine. It will work on Windows Server 2003 or Windows XP with Service Pack 2 installed, though. So I wrote a sample for SwC, ran it on my XP SP1a+ (meaning SP1a plus all Windows Update delivered Hotfixes) laptop and, guess what… it does work on Windows XP pre-SP2! I checked and double-checked, but it really does.
Next, I wanted to now which Windows XP Hotfix caused it to work, but didn’t feel like going through all of the fixes on my machine. In the single comment on Clemens Vasters’ weblog entry on the same topic, I found what I was looking for. Alex James had it pinned down exactly: Windows XP Hotfix 828741, a DCOM/RPC related fix that gets some security related (read Sasser exploit) out of the way.
So, bottom line is this: if you want Services without Components on Windows XP, and want it now, just install Hotfix 828741 (see the related Knowledge Base article). Already have the fix? Man, you could have been using it all along. Why would you want Services without Components? Let me tell you a bit about that tomorrow. I’ll also show how to implement TIP transactions (which uses SwC) in Enterprise Services 1.1 shortly. Check back soon.