c# - MSDTC: Communication with the underlying transaction manager has failed -
I have a WinForms / WCF / SQLServer app where I'm trying to use the MSDTC transaction: < / P>
using the system. Behavior; // ... var Transaction = New Transaction Option {Isolation Level = Isolation (Var scope = new transaction scope (transaction Sescopopeshn. Required, Tronsopsn)) {// ... if (everything_is_ok) scope.Complete (); } Box on my Dev, where there are server and client processes on the same machine, it works fine. But when I was hanging to the scope.Complete is called (), the client timeout period (2 minutes) And then I find: Flushed transactions can not be unmarshaled. The following exception occurred: Communication with the built-in transaction manager failed.
What could be the reason for this?
I have spent a few hours trying to solve this problem under Windows 7. In the end it worked, how I did it:
- Enable MSDTC and inbound / outbound Allow transactions (through the Control Panel)
- - just follow the guide
- allow ports defined for opening your firewall (2) (if you use one)
- the Msditisi through Windows firewall Allow - New Regulation for Inbound Connection for MSDTC XE Add (% should systemroot% \ system32)
This is probably not the best solution but the only one who worked in my case.
EDIT: After another issue with MSDT under Windows 7 SP1, I came to know that you need to do two things to do this work.
- Add to Host Mapping between the IP and NetBIOS names of the server.
- HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ Microsoft \ add two keys on Windows or edit NT \ RPC: "RestrictRemoteClients" = dword: 00000000 "EnableAuthEpResolution" = dword: 00000000 < / Div>
Comments
Post a Comment