Вход/Регистрация
C# для профессионалов. Том II
вернуться

Ватсон Карли

Шрифт:

Создание приемника событий

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

Quote
:

Оконное приложение имеет только окно списка и кнопку выхода:

Компонент

EventLog
добавляется в этот проект перетаскиванием его из панели инструментов. Свойство
Log
задается как
Application
, a
Source
как источник службы
QuoteService
. Класс
EventLog
также имеет свойство
EnableRaisingEvents
. До сих пор мы не говорили об этом свойстве. По умолчанию для него используется значение false, задание его как true означает, что событие создается каждый раз, когда происходит это событие, и можно написать обработчик событий для оконного события
EntryWritten
.

В файле

EventListener.cs
свойства задаются в методе
InitializeComponent
:

private void InitializeComponent {

 this.eventLogQuote = new System.Diagnostics.EventLog;

 this.buttonExit = new System.Windows.Forms.Button;

 this.listBoxEvents = new System.Windows.Forms.ListBox;

 ((System.ComponentModel.ISupportInitialize)

(this.eventLogQuote)).BeginInit;

 this.SuspendLayout;

 //

 // eventLogQuote

 //

 this.eventLogQuote.EnableRaisingEvents = true;

 this.eventLogQuote.Log = "Application";

 this.eventLogQuote.Source = "QuoteService";

 this.eventLogQuote.SynchronizingObject = this;

 this.eventLogQuote.EntryWritten +=

new System.Diagnostics.EntryWrittenEventHandler(this.OnEntryWritten);

 // ...

Программа обработки

OnEntryWritten
получает объект
EntryWrittenEventArgs
в качестве аргумента, где можно получить всю информацию из события. С помощью свойства
Entry
мы получаем объект
EventLogEntry
с информацией о времени, источнике события, типе, категории и т. д.:

protected void OnEntryWritten(object sender, System.Diagnostics.EntryWrittenEventArgs e) {

 DateTime time = e.Entry.TimeGenerated;

 string message = e.Entry.Message;

 listBoxEvents.Items.Add(time + " " + message);

}

Выполняющееся приложение показывает все события для

QuoteService
:

Мониторинг производительности

Мониторинг производительности может использоваться для получения информации о нормальном выполнении службы. Это прекрасный инструмент, который помогает понять нагрузку системы и наблюдать изменения и тенденции.

Windows 2000 имеет множество объектов производительности, таких как

System
,
Memory
,
Objects
,
Process
,
Processor
,
Thread
,
Cache
и т. д. Каждый из этих объектов имеет множество показателей для мониторинга. С помощью объекта Process для всех процессов или для определенных экземпляров процессов можно контролировать время пользователя, счетчик дескрипторов. Ошибки страниц, счетчик потоков выполнения и т. д. В некоторых приложениях также имеются специфические объекты, например SQL Server.

Для нашей службы цитат может представлять интерес получение информации о числе клиентских запросов, размере данных, посылаемых по каналам связи, и т.д.

Классы мониторинга производительности

Пространство имен

System.Diagnostics
имеет следующие классы для мониторинга производительности:

□ 

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

□ С помощью класса

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

□ Класс

PerformanceCounterInstaller
используется для установки счетчиков производительности, аналогично классу
EventLogInstaller
, о котором упоминалось ранее.

Построитель счетчиков производительности 

Можно создать новую категорию, выбирая счетчики производительности в Server Explorer. Категория называется

Quote Service
. В таблице показаны все счетчики производительности нашей службы:

  • Читать дальше
  • 1
  • ...
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: