I have two EC2 instances, one running websites in IIS and the other hosting a SQL-Server instance. The website(s) are communicating fine for this server, pulling data out of the database without issue. However, when I go to write a suite of data, I am using DTC which is giving me problems. When I try to write (and therefore wrap in a transaction) I get the following error message:
The MSDTC transaction manager was unable to pull the transaction from the source transaction manager due to communication problems. Possible causes are: a firewall is present and it doesn't have an exception for the MSDTC process, the two machines cannot find each other by their NetBIOS names, or the support for network transactions is not enabled for one of the two transaction managers. (Exception from HRESULT: 0x8004D02B).
If I run DTCPing.exe from the SQL instance to the IIS instance I get the following result:
09-20, 12:19:12.861-->Start RPC test (-->WIN-I9MDBIKCVAD) Problem:fail to invoke remote RPC method Error(0x6BA) at dtcping.cpp @303 -->RPC pinging exception -->1722(The RPC server is unavailable.) RPC test failed
Things I’ve tried:
Anyone have any suggestions as to what may be cuasing this issue?
Thanks
Turns out the issue was regarding the Transaction Manager Communication settings. By default MSDTC enabled 'Mutual Authentication Required' but the two machines can't authenticate using the default 'NT AUTHORITY\NetworkService' account. Solution was to create a user accross both machines that enables it to authenticate, or more simply, just select 'No Authentication Required'. Applied this setting, restarted the service and its working!