Невозможно перезапустить службу Windows из моего приложения ASP.NET - PullRequest
0 голосов
/ 11 апреля 2011

Я пытаюсь перезапустить службу времени Windows из моего приложения asp.net, используя следующий код, но оно всегда возвращает исключение TimeoutException. Я пробовал различные способы удалить эту ошибку и перезапустить службу, но, к сожалению, не удается. Код, который я использую для этой цели, показан ниже:

private ServiceController service = 
     new ServiceController( "W32Time", Environment.MachineName );
private TimeSpan timeout = TimeSpan.FromMilliseconds( 35000 );//15000 was the old value

// Restart W32Time Service
private void RestartService( )
{
    try
    {
        // Stop service if it is running
        if( service.Status == ServiceControllerStatus.Running )
        {
            service.Stop( );
            service.WaitForStatus( ServiceControllerStatus.Stopped, timeout );
        }

        // Start service if it is stopped
        if( service.Status == ServiceControllerStatus.Stopped )
        {
            if (!(service.Status.Equals(ServiceControllerStatus.Stopped) || 
                  service.Status.Equals(ServiceControllerStatus.StopPending)))
            {
                service.Stop();
            }

            service.Start( );
            service.WaitForStatus( ServiceControllerStatus.Running, timeout );
        }
    }
    catch( Exception ex )
    {
        log.Error( "Error in restarting windows service.", ex );
    }
}

Я использую Windows 7. Может кто-нибудь предложить мне решение этой проблемы? Любая помощь будет оценена.

1 Ответ

1 голос
/ 11 апреля 2011

Ваш пример отлично работает для меня со встроенным веб-сервером VS.

Что заставляет меня думать, что пользователь, под которым запускается ваше веб-приложение, не имеет разрешения на запуск / остановку служб. Это может быть либо пользователь AppPool, либо пользователь, вошедший в систему, в зависимости от того, как настроено приложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...