I need to restart the Timer Service from an application and it took me some time to find the answer.
It’s as easy as one could think.
Anyway here's the code:
///
/// Stops the SharePoint timer.
///
public static void TimerStop()
{
ServiceController timerService = new ServiceController(Constants.SPTimerName);
if (timerService.Status == ServiceControllerStatus.Running)
{
timerService.Stop();
timerService.WaitForStatus(ServiceControllerStatus.Stopped, Constants.WaitingTimeout);
}
}
///
/// Starts the SharePoint timer.
///
public static void TimerStart()
{
ServiceController timerService = new ServiceController(Constants.SPTimerName);
if (timerService.Status == ServiceControllerStatus.Stopped)
{
timerService.Start();
timerService.WaitForStatus(ServiceControllerStatus.Running, Constants.WaitingTimeout);
}
}
And by the way the constants are:
public static TimeSpan WaitingTimeout = new TimeSpan(0, 1, 30);
public static string SPTimerName = "SharePoint 2010 Timer";
No comments:
Post a Comment