I am currently working on a Windows application with C# and MS SQL Server 2005 Express as the back-end database. It’s been working fine until today when it gave me an error message when I tried to update a datatable. The error message is:
MSDTC on server ‘(server name)\SQLEXPRESS’ is unavailable.
According to Microsoft SQL Server 2005 Express Edition with Advanced Services Readme (see section 3.4), the cause of the error is:
Because the Microsoft Distributed Transaction Coordinator (MS DTC) is not completely configured in Windows, applications might fail to enlist SQL Server Express resources in a distributed transaction. This problem can affect linked servers, distributed queries, and remote stored procedures that use distributed transactions. To prevent such problems, you must fully enable MS DTC services on the server where SQL Server Express is installed.
Here is the resolution:
To fully enable MS DTC:
In Control Panel, open Administrative Tools, and then double-click Component Services.
In the left pane of Console Root, click Component Services, and then expand Computers.
Right-click My Computer, and then click Properties.
On the MSDTC tab, click Security Configuration.
Under Security Settings, select all of the check boxes.
Verify that the DTC Logon Account name is set to NT AUTHORITY\NetworkService.
I followed the steps above, and it fixed my problem.
Hope this will help someone else.