Troubleshooting on TransactionScope
We often met several kinds of errors when using TransactionScope in our applications and some settings are not proper.
Here are some tips on how to resolve these issues.
My scenario is, web application is running on server A, and database used by the web app is running on server B, both servers have firewalls enabled.
First when try to access the web app, I get below exception:
Network access for Distributed Transaction Manager (MSDTC) has been disabled. Please enable DTC for network access in the security configuration for MSDTC using the Component Services Administrative tool.
The error message is obvious, so on server A, I come to Administrative Tools ->Component Services ->right-clicking on My Computer- >Properties->MSDTC, setting it as below:
When I try to access web app again, I get a similar exception shown below:
The partner transaction manager has disabled its support for remote/network transactions. (Exception from HRESULT: 0x8004D025)
This time, I made the same setting with previous step on server B on which the SQL Server is running.
Again, I get another error when access the web application,
Communication with the underlying transaction manager has failed.
When I searched on internet, I realized that because I have firewalls running on both servers, and the MSDTCs need get through them. So I configured the firewalls so that MSDTCs will not be blocked by the firewalls. My firewalls are coming with the windows operating system, so I added the msdtc.exe to the Exceptions tab of the windows Firewall window.
When I access the App, I get the same error as described previously.
It’s really frustrating, after some investigations, I modified the hosts file under C:\WINDOWS\system32\drivers\etc on database server by adding 192.168.1.121 test-server in it, the IP is the web server’s IP and test-server is the name of the web-server.
This time, everything works fine, problem is resolved.