C#检查DTC服务是否开启

Check if DTC service is turned on in C#

当分布式事务处理协调器 (DTC) 不是 运行 时,我们的 MVC C# 站点会抛出奇怪的误导性错误,使开发人员和测试人员感到困惑。我们想做一个代码检查服务是 运行 并在 Global.asax 之类的东西上标记问题。有什么办法吗?

如果当前 "Stopped"

,下面的代码会在本地计算机上启动 MSDTC 服务

您需要引用 System.ServiceProcess 程序集


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