Главная » Статьи » Программирование » С#

Отладка службы Windows (C#)

Отладить службу в Windows довольно просто, хотя это не столь  тривиальная задача, как можно было бы подумать. В данном случае не помогут обычные средства отладки среды разработки Visual Studio. Существует два способа отладить службу, на одном из которых мы и остановимся. Первый способ предполагает автоматическую запись данных в журналы программ Windows при выставленном свойстве службы Autolog со значением true.

 

Второй способ, на котором, собственно, остановимся, предполагает, что для службы установлено значение false для свойства Autolog. При этом следует определиться с названием настраиваемого журнала, куда будем выводить все записи и создать объект типа EventLog, у которого есть метод WriteEntry, с помощью которого и будем выводить записи в настраиваемый журнал. Данный вариант очень удобен при отладке службы в среде виртуальной машины, когда служба устанавливается в одной из гостевых операционных систем.

 

Например, можно сделать так, как указано в ниже поданном программном коде:

....
EventLog eventlog = new EventLog();
....
//эту часть сделаем в конструкторе
 this.AutoLog = false;
  if (!EventLog.SourceExists("KeySpyLog"))
    {
      EventLog.CreateEventSource("KeySpyLog", "MyLog");
    }
    eventlog.Source = "KeySpyLog";
....
  //далее нужно добавлять, где необходимо записи с помощью WriteEntry например так в теле одной из функций
int i = 0;
   try
   {
          eventlog.WriteEntry("WrapWAPI.WTSEnumerateSessionsWAPI");
        i = WrapWAPI.WTSEnumerateSessionsWAPI((IntPtr)WtsCurrentServerHandle, 0, 1, ref           this.lpSessionInfo, ref pCount);
   }
   catch (Exception ex)
   {
      eventlog.WriteEntry(ex.Message + " " + ex.Source);
   }
    return i;

 

Этот код, взаимодействуя с компонентом настраиваемых журналов в Windows, создаст такой журнал и выведет в качестве записей все, что мы указали как интересующее нас во время работы приложения. Таким образом, мы сможем разобраться с ходом выполнения программного кода, создаваемой службы. Результатом станет что-то похожее на представленное ниже на рисунке.

На данном рисунке представлен пользовательский настраиваемый журнал MyLog. В поле сведения внесены записи с помощью WriteEntry о каждом, интересовавшем событии. 



Ключевые слова: отладка службы windows, как отладить службу windows, пример отладки службы
Категория: С# | Добавил: lesha (22.05.2015) W
Просмотров: 2193 | Комментарии: 135 | Теги: отладка службы windows, как отладить службу windows, пример отладки службы | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: