Troubleshooting Guide: Error 8577 – DTC for SQL Managed Instance is Disabled
Why This Error Happens
This error occurs because the Distributed Transaction Coordinator (DTC) service is not enabled or properly configured for the SQL Managed Instance, which is required to handle distributed transactions across multiple servers. In most cases, this happens because the MSDTC feature was never activated on the host, network DTC access is blocked by firewall rules, or the necessary security configurations (such as “No Authentication Required” or “Incoming/Outgoing Caller Access”) have not been set. Additionally, on Windows Server 2025 and Windows 11, newer security defaults may disable network DTC access out-of-the-box, causing SQL Server to reject distributed transaction requests.
Step-by-Step Resolution Guide
Step 1: Verify and Enable the MSDTC Service
- Open Run (Win + R), type
comexp.msc, and press Enter to launch Component Services. - Navigate to Component Services > Computers > My Computer > Distributed Transaction Coordinator > Local DTC.
- Right-click Local DTC and select Properties to confirm the service status is “Started.”
- Alternatively, verify via PowerShell:
Get-Service -Name MSDTC
- If stopped, start it manually:
Start-Service -Name MSDTC
Step 2: Configure DTC Security Settings
- In the Local DTC Properties window, go to the Security tab.
- Enable the following checkboxes:
- Network DTC Access
- Allow Inbound and Allow Outbound
- Mutual Authentication Required (or “No Authentication Required” if client/server are not domain-joined)
- Click Apply, then restart the MSDTC service when prompted.
- Restart via PowerShell if needed:
Restart-Service -Name MSDTC -Force
Step 3: Open Required Firewall Ports
- Ensure that TCP port 135 (RPC Endpoint Mapper) is open on both the client and server firewalls.
- Allow the Distributed Transaction Coordinator program through Windows Defender Firewall:
New-NetFirewallRule -DisplayName "Allow MSDTC" -Direction Inbound -Program "%systemroot%\System32\msdtc.exe" -Action Allow
- If running in a clustered or managed instance environment, confirm that dynamic RPC ports (49152–65535) are also permitted.
Step 4: Enable DTC Support for SQL Managed Instance via Azure Portal/SSMS
- For Azure SQL Managed Instance, navigate to the Azure Portal > SQL Managed Instance > Distributed Transactions blade.
- Toggle the DTC setting to Enabled.
- For on-premises SQL Server 2025, run the following T-SQL command to confirm DTC support:
EXEC sp_configure 'remote proc trans', 1;
RECONFIGURE;
- Restart the SQL Server service for changes to take effect.
Step 5: Validate Registry and Cluster Configuration (If Applicable)
- For Failover Cluster Instances (FCI), confirm DTC is added as a cluster resource via Failover Cluster Manager.
- Check the registry path
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTCto ensure no corrupted or missing keys exist. - If corruption is suspected, uninstall and reinstall the MSDTC feature:
msdtc -uninstall
msdtc -install
Alternative or Verification Steps
- Run the DTC Ping tool (DTCPing.exe) between the SQL Managed Instance and client application server to confirm bidirectional connectivity on port 135 and the dynamic RPC range.
- If the issue persists after configuration, check the Component Services > Local DTC > Transaction List for stalled or orphaned transactions, and consider resetting the DTC log via
msdtc -resetlogas a last resort.