Поделиться через


Практическое руководство. Реализация и вызов пользовательских событий мониторинга состояния ASP.NET

Обновлен: Ноябрь 2007

В примере данного раздела показано, как вызывать пользовательские события мониторинга состояния ASP.NET. При добавлении пользовательского события в приложение необходимо учесть следующие моменты:

  • Способ настройки области для события мониторинга состояния. Если предполагается вызывать данное событие во всех приложениях на сервере, необходимо настроить область события на уровне компьютера. Предпочтительный способ сделать это — создать HTTP-модуль, в котором реализован вызов пользовательского события, как показано в данном примере. Затем следует установить модуль на уровне компьютера. Модуль вызывается во всех приложениях на компьютере, на котором этот модуль установлен.

  • Время вызова события мониторинга состояния. Можно вызвать события мониторинга состояния в любой момент во время обработки запроса. Обычно точки времени вызова пользовательского события WebRequestEvent находятся в пределах системного события BeginRequest или события EndRequest.

В данном примере показаны следующие функции:

  • построение HTTP-модуля для вызова пользовательских событий мониторинга состояния;

  • настройка приложения на запись в журнал событий с помощью стандарта EventLogWebEventProvider;

  • ведение журнала событий с помощью стандарта EventLogWebEventProvider.

Для выполнения примера кода понадобится следующее:

Построение HTTP-модуля

  • Поместите исходный код из раздела Пример создания пользовательских событий ASP.NET, следящих за работоспособностью в каталог приложения ASP.NET App_Code в файл SampleModule.vb или SampleModule.cs.

    ms227980.alert_note(ru-ru,VS.90).gifПримечание.

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

    Компиляция кода пользовательского поставщика событий будет выполнена ASP.NET при запросе страницы приложения. Дополнительные сведения см. в разделе Общие папки кода на веб-узлах ASP.NET.

    — или —

  • Скомпилируйте пользовательский поставщик событий как библиотеку и поместите библиотеку в каталог Bin приложения ASP.NET или дайте сборке строгое имя и помесите эту сборку в глобальный кэш сборок (GAC).

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

    vbc /out:<example_name>.dll /t:library <example_name>.vb /r:System.Web.dll /r:System.Configuration.dll /r:<required namespace>
    
    csc /out:<example_name>.dll /t:library <example_name>.cs /r:System.Web.dll /r:System.Configuration.dll  /r:<required namespace>
    
    ms227980.alert_note(ru-ru,VS.90).gifПримечание.

    При невозможности выполнить команду компилятора перед запуском команды необходимо добавить путь установки платформы .NET Framework в переменную среды Windows PATH. В Windows щелкните правой кнопкой мыши элемент Мой компьютер, щелкните пункт Свойства, перейдите на вкладку Дополнительно, а затем нажмите кнопку Переменные среды. В списке Системные переменные дважды щелкните переменную Path. В поле Значение переменной добавьте точку с запятой (;) в конец существующих значений текстового поля и введите путь установки платформы .NET Framework. Обычно платформа .NET Framework устанавливается в папку установки Windows в "\Microsoft.NET\Framework\versionNumber".

Настройка приложения ASP.NET для использования данного примера

  1. Если файл существует в корневой папке приложения ASP.NET, откройте его. В противном случае создайте файл Web.config и скопируйте в него следующий текст:

    <?xml version="1.0"?>
    <configuration xmlns="https://schemas.microsoft.com/.NetConfiguration/v2.0">
      <system.web>
      </system.web>
    </configuration>
    
  2. В теги system.web добавьте элементы httpModules и Элемент healthMonitoring (схема параметров ASP.NET).

    <httpModules>
      <add name="Raising Custom Web Events" 
        type="Samples.AspNet.Management.CustomWebEvents" 
      />
    </httpModules>
    <healthMonitoring 
      heartbeatInterval="0" 
      enabled="true">
      <eventMappings>
        <add name="SampleWebRequestEvent" 
          type="Samples.AspNet.Management.SampleWebRequestEvent" 
        />
      </eventMappings>
      <profiles>
        <add name="Custom" 
          minInstances="1" 
          maxLimit="Infinite" 
          minInterval="00:00:00" 
        />
      </profiles>
      <rules>
        <clear />
          <add name="Custom Web Request Event" 
            eventName="SampleWebRequestEvent"
            provider="EventLogProvider" 
            profile="Custom" 
         />
      </rules>
    </healthMonitoring>
    

    С помощью атрибута type могут быть перечислены имена классов, как это реализовано в предыдущем примере, или могут быть перечислены полностью определенные типы, как в следующем примере:

    type="Samples.AspNet.Management.SampleWebRequestEvent,
    Sample.SampleModule,Version=1.0.0.0,Culture=neutral, 
    PublicKeyToken=xxxxxxxxxxxx"
    
    ms227980.alert_note(ru-ru,VS.90).gifПримечание.

    Полный определенный тип необходим, только если класс установлен в глобальный кэш сборок GAC в каталоге Bin.

Тестирование пользовательского веб-события

  1. Откройте окно просмотра событий Windows на сервере, на котором выполняется веб-приложение. Чтобы сделать это, нажмите кнопку Пуск, выберите команду Выполнить, введите eventvwr в диалоговом окне Выполнить, затем нажмите кнопку ОК.

  2. В дереве просмотра журнала событий узла "Просмотр событий" щелкните пункт Приложение.

  3. Обновите представление журнала приложения, щелкнув пункт Действие, затем пункт Обновить.

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

  4. В веб-обозревателе запросите любую страницу веб-приложения.

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

  5. Обновите журнал приложения еще раз и проверьте, что сведения о событиях состояния, выданные пользовательским событием, внесены в журнал.

См. также

Задачи

Пример создания пользовательских событий ASP.NET, следящих за работоспособностью

Основные понятия

Общие сведения о мониторинге работоспособности системы ASP.NET

Ссылки

Элемент healthMonitoring (схема параметров ASP.NET)

EventLogWebEventProvider

Другие ресурсы

Extending ASP.NET Processing with HTTP Modules