views:

1284

answers:

2

First off, I don't know if this is possible, but let me describe my scenario.

I have a set of WCF services, a SQL Server 2008 Database all running on Windows Server 2008. All of this works fine when I am connected to my LAN, however I am going to be using this box for a demo, and I would like to make it work in standalone mode (ie, not connected to any network).

When I attempt to do this in standalone mode, the SQL Server database appears to be working (I am able to retrieve data). However when I try and insert data within a transaction scope from the WCF services, on the client side I am getting a communication fault exception. Checking the windows event logs, I see that there is a message along the lines of "MSDTC encountered an error while attempting to establish a secure connection with system ".

Does anyone know what needs to be set on the DTC to allow this to work

A: 

It could be to do with the connection string the WCF services use to connect to the database. Try using Data Source=. or Data Source=localhost, to ensure you are using the loopback network adapter (127.0.0.1).

Is there a firewall running on the Windows machine? Is the server part of a domain?

I would also suggest looking at the security settings dialog of MS DTC (Component Services MMC plugin). Try setting the "Transaction Manager Communication" to "No Authentication Required" and ticking most other options as a base line.

Mark Glasgow
A: 

In context of what happened, the error now makes perfect sense.

The problem here was that somewhere in one of the applications deployed to the server, we were referring to a hardcoded dns name that was inaccessible by this server (since it was standalone). From what I understand, the DTC attempted to flow the transaction, failed to establish the address from the computer name and that was where it bombed out. As the application was a WCF service, the error was pretty well obfuscated, but eventually we traced by turning on service tracing.

Hope that helps anyone else that encounters a similar error. Beware the hardcoded values.

Furis