8
votes

A client of our has recently upgraded a ASP.NET 1.1 web application to ASP.NET that uses COM+ transaction processing and received the following exception while trying to process a transaction:

Exception Type: System.Transactions.TransactionManagerCommunicationException
Message: Communication with the underlying transaction manager has failed.

Inner Exception Type: System.Runtime.InteropServices.COMException ErrorCode: -2147467259
Message: Error HRESULT E_FAIL has been returned from a call to a COM component.

Here are the following settings on MSDTC Security Settings:

-- Network DTC Access
-- Allow Inbound
-- Allow Outbound
-- Incoming Caller Authenication Required

A Windows XP SP3 workstation is trying to establish a connection to a Windows Server 2003 machine.

Has anyone else experienced this error and know how to resolve it.

5

5 Answers

14
votes

You'll need to have network DTC access enabled on both your XP workstation and your windows 2003 machine. Also, if your application is only published internally, you can turn off incoming caller authentication and set it to "no authentication".

9
votes

Add C:\Windows\msdtc.exe to the firewall exceptions on both the firewall and server. I spent ages monkeying around opening specific port numbers and ranges to no avail before I did this.

3
votes

1)Disable authentication besides enabling the network access to "distributed transaction co-ordination " service (mutual authentication doesn’t work as displayed in internet in xp sp3 machines)

2) enable network access in client ( web applicaton ) and server ( sql server ) machines for "distributed transaction co-ordination " service .

0
votes

In case you need help finding the MSDTC settings mentioned in the other answers (like I did), the following link explains how to configure MSDTC on server 2003.

http://itknowledgeexchange.techtarget.com/sql-server/how-to-configure-dtc-on-windows-2003/