The DTC service cannot start

If you cannot get the DTC service to start and see the following error whenever you try starting it, check the registry value HKLM\SOFTWARE\Microsoft\MSDTC\SysprepInProgress.

The Distributed Transaction Coordinator service on Local Computer started and then stopped. Some services stop automatically if they are not in use by other services.

If the value is 1, change it to 0 and try starting DTC again, which may resolve your problem. It is by design that DTC cannot run during sysprep. The default value of SysprepInProgress is 0, indicating the system is not in the middle of sysprep. How can this value become 1? One possibility is the machine was created with sysprep and a previous run failed.

The SysprepInProgress registry value is set during the MSDTC setup. Open the C:\windows\ DtcInstall.log and you could see the differences at the bottom of the log file between a good installation and a bad installation.

Good_DtcInstall.log


08-12-2013 15:07 : DTC Install error = 0, SysPrepDtcSpecialize : Enter, d:\w7rtm\com\complus\dtc\dtc\adme\deployment.cpp (1897)
08-12-2013 15:07 : DTC Install error = 0, SysprepDtcSpecialize: SysprepInProgress == 0. DTC has been already specialized., d:\w7rtm\com\complus\dtc\dtc\adme\deployment.cpp (1915)
08-12-2013 15:07 : DTC Install error = 0, SysPrepDtcSpecialize : Exit, d:\w7rtm\com\complus\dtc\dtc\adme\deployment.cpp (1959)

Bad_DtcInstall.log


12-20-2013 13:18 : DTC Install error = 0, SysPrepDtcSpecialize : Enter, d:\w7rtm\com\complus\dtc\dtc\adme\deployment.cpp (1897)
12-20-2013 13:18 : DTC Install error = 0, SysprepDtcSpecialize: SysprepInProgress == 0. DTC has been already specialized., d:\w7rtm\com\complus\dtc\dtc\adme\deployment.cpp (1915)
12-20-2013 13:18 : DTC Install error = 0, SysPrepDtcSpecialize : Exit, d:\w7rtm\com\complus\dtc\dtc\adme\deployment.cpp (1959)
01-14-2014 13:01 : DTC Install error = 0, SysPrepDtcCleanup : Enter, d:\w7rtm\com\complus\dtc\dtc\adme\deployment.cpp (1763)
01-14-2014 13:01 : DTC Install error = 0, SysPrepDtcCleanup : Exit, d:\w7rtm\com\complus\dtc\dtc\adme\deployment.cpp (1814)
01-14-2014 13:01 : DTC Install error = 0, SysPrepDtcGeneralize : Enter, d:\w7rtm\com\complus\dtc\dtc\adme\deployment.cpp (1820)
01-14-2014 13:01 : DTC Install error = 0, SysPrepDtcGeneralize : Exit, d:\w7rtm\com\complus\dtc\dtc\adme\deployment.cpp (1891)

SysPrepDtcSpecialize sets the value to 0 and SysPrepDtcGeneralize sets SysprepInProgress to 1

If SysprepInProgress is not your cause, you can consider the process documented in Disaster Recovery for MSDTC on Windows Server 2003 and 2008.

Comments

  • Anonymous
    October 27, 2015
    Aah thanks David, that solved my problem.

  • Anonymous
    January 05, 2016
    Thanks for the excellent tips. It resolved my issue