Реклама:

this. _endpoinl = config["endpoint"J; config.Removef"endpoint");

new WebPe>mission( NetworkAccess.Connect. _enripoint).Demand():

base.Imtialize(name, config);

}

)

В буферизованных провайдерах нужно реализовать метол ProcessEventFlush. Рабочий цикл передает в него некий параметр типа WebEventBufferFlusklnfo. Этот параметр содержит одно или несколько событий, которые должны быть очищены для клиента, а также другую полезную информацию, например количество оставшихся в буфере утерянных событий (если они были) и время последней очистки. Если события были сброшены, следует записать и зту информацию. Метод ShulDown должен, по крайней мере, вызывать метод Flush и при необходимости очищать ресурсы.

public override void ProcessEventFlush( WebEventBufferFlushlnfo flusblnfo)

(

List<LogMessage> messages = new List<LogMessage>();

// Регистрация фак'а утери событий

if (flusnlnfo.EventsDiecardedSinceLastNotificatlon > 0)

{

LogMcssage msg = new LogMessagof): msg.Event Code = 0;

msg.Event Time = DateTime.Now loSiring(); msg.Message =

flusnlnfo.EventsDiscardedSinceLasiNotification.ToStrlng() + events discarded since last flush";

messages.Add(msg);

)

// Обработка событий

foreach (WebBaseEvent e in flusnlnfo.Events) messages.Add(prepareMesaage(e));

// Создание агента Web-слухбы и указание URL ServiceProxy.WebServiceEventServtce service =

new ServiceProxy.WenServiceEventService(); service.Url = this._endpoint;

// Отправка массива событий Web-службе service.Log(messages.ToAr ray());

>

public override void Shutdown!) {

this. FlushO;

Health Monitoring и частичное доверие

Среда Health Monitoring Framework прекрасно работает в системах с частичным доверием, однако вам следует знать некоторые детали.

Поскольку событие Web транспортирует потенциально уязвимые данные, оно должно быть полностью доверенным. Сказанное относится ко всем классам, наследованным от WebManagementEvent (в частности, к WebAuditEvent). Для применения! такой технологии в своих классах событий нужно выделить их в отдельную сборку] и разрешить полное доверие. (Пошаговое описание принципов работы вы найдете в главе 6.) Чтобы избежать передачи уязвимых данных, можно наследовать события от WebBaseEvent и создать собственную иерархию наследования. (Вам придется самостоятельно позаботиться о сборе дополнительной информации о событиях.)

Кроме того, если вы создаете собственные провайдеры, они должны иметь необходимые разрешения, например право доступа к счетчикам производительности, Web-службам или SQL Server.

Рекомендации по работе с Health Monitoring

Как уже говорилось, в .NET имеются все API, которые можно использовать для создания собственной структуры регистрации и средств контроля, однако частое их. применение сопряжено с необходимостью выполнять много дополнительной работы. Health Monitoring представляет собой очень гибкую инфраструктуру, которая удовлетворит большинство часть ваших потребностей в регистрации. Я рекомендую использовать ее, когда нужно осуществлять расширение с помощью собственных провайдеров. Приведу несколько советов но работе с Health Monitoring.


⇐ Предыдущая страница| |Следующая страница ⇒