Krishna Chaitanya Bezawada Ответов: 1

Как перезапустить службу с помощью C#, когда локальная сеть отключена и подключена обратно


Привет, я пытаюсь выполнить программу на c#, которая должна перезапустить службу, когда кабель локальной сети отсоединен и подключен обратно к системе. Пожалуйста, помогите мне.

Что я уже пробовал:

Я пытался перезапустить службу в течение определенного периода времени, но мне это нужно, когда локальная сеть отключена и подключена обратно.

public static void RestartService(string serviceName, int timeoutMilliseconds)
{
  ServiceController service = new ServiceController(serviceName);
  try
  {
    int millisec1 = Environment.TickCount;
    TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);

    service.Stop();
    service.WaitForStatus(ServiceControllerStatus.Stopped, timeout);

    // count the rest of the timeout
    int millisec2 = Environment.TickCount;
    timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds - (millisec2-millisec1));

    service.Start();
    service.WaitForStatus(ServiceControllerStatus.Running, timeout);
  }

1 Ответов

Рейтинг:
0

Wendelius

Вы могли бы следить Сетевой обмен.NetworkAvailabilityChanged Событие (System. Net.NetworkInformation)[^] для того, чтобы реагировать на изменения.

Однако я должен сказать, что это звучит странно, что отдельная программа перезапускает службу таким образом. В большинстве ситуаций я считаю, что служба должна самостоятельно справляться с ситуацией.