I have DTC enabled on 2 servers - a web server, and a database server. There are a few places in our web applications where we need to use DTC (via a TransactionScope) to manage transactions involving multiple databases. On our AD servers it is working fine, but for some reason it isn't completely working on one pair that are not members of a domain. I get the following error:
MSDTC on server 'DATABASE-SERVER' is unavailable.
Using DTCPing from my web server, I get a successful test, but from my database server I do not (it stops after the RPC call with no messages).
Some notes on configuration:
- Firewalls are disabled on both servers
- DTC is configured the same on both (the Local DTC Properties have Network DTC Access et, allow remote clients/admin, allow inbound/outbound communication, enables all transaction types, and 'No Authentication Required'
- Using DTCPing, I can connect from the web server to the database server, but not vice versa
- RCPPing works fine in both directions
- DTC is running on both
- I've restarted the service, and performed an uninstall/install multiple times on both servers
- nbtstat -c correctly shows the remote server names
The only difference between the servers I can find is that when I initiate DTCPing from the database server, it doesn't finish the test (it just says "Please start PING from WEB-SERVER to complete the test"), while if I initiate from the web server it complete the entire thing on both ends.