Search code examples
asp.net-mvcmsdtc

Check if DTC service is turned on in C#


When Distributed Transaction Coordinator (DTC) is not running, our MVC C# site throws strange misleading errors, confusing developers and testers. We want to do a code check that the service is running and flag the issue on something like Global.asax. Any way to do this?


Solution

  • The below code starts the MSDTC service on the local machine if it's currently "Stopped"

    You need to reference the System.ServiceProcess assembly

    
    using(var msDtcSvc = new System.ServiceProcess.ServiceController("MSDTC"))
    {
        if(msDtcSvc.Status == System.ServiceProcess.ServiceControllerStatus.Stopped)
        {
            msDtcSvc.Start();
        }
    }