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.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.