I'm not familiar with the .NET WS-AT implementation. But in theory as long as client and service implement the same specification they should be able to communicate. We implement two WS-AT versions: Web Services Atomic Transaction Version 1.1 and Web Services Atomic Transaction 1.2.
Does your .NET client work if you're not using SSL?
Not using SSL makes no difference.
Java client code uses this snippet that makes transaction work.
* Add client handler chain
BindingProvider bindingProvider = (BindingProvider) client;
List<Handler> handlers = new ArrayList<Handler>(1);
But .NET code has no equivalent syntax to do this, so it is not that the client and server does not share the same specifications, but there is no way for the server to recognize the WS-AT context coming from client request and register the transaction with a WS-C coordinator.
That code snippet in the servlet is specific to our implementation. I assume .NET container should provide an implementation of WS-C context propagation.
I'm sorry, but I'm not really able to help you with this question, because I'm not familiar with .NET. I recommend you to contact Microsoft regarding the client side setup and if there is any question related to the server side get back to us.