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


WebApplicationLifetimeEvent Класс

Определение

Представляет значительное событие в жизненном цикле приложения.

public ref class WebApplicationLifetimeEvent : System::Web::Management::WebManagementEvent
public class WebApplicationLifetimeEvent : System.Web.Management.WebManagementEvent
type WebApplicationLifetimeEvent = class
    inherit WebManagementEvent
Public Class WebApplicationLifetimeEvent
Inherits WebManagementEvent
Наследование
WebApplicationLifetimeEvent

Примеры

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


using System;
using System.Text;
using System.Web;
using System.Web.Management;

namespace SamplesAspNet
{
  // Implements a custom WebManagementEvent class. 
    public class SampleWebApplicationLifetimeEvent :
        System.Web.Management.WebApplicationLifetimeEvent
    {
        private string customCreatedMsg, customRaisedMsg;

        // Invoked in case of events identified only by 
        // their event code.
        public SampleWebApplicationLifetimeEvent(string msg, 
            object eventSource, int eventCode):
          base(msg, eventSource, eventCode)
        {
            // Perform custom initialization.
            customCreatedMsg =
            string.Format("Event created at: {0}",
            DateTime.Now.TimeOfDay.ToString());
        }

        // Invoked in case of events identified by their 
        // event code.and related event detailed code.
        public SampleWebApplicationLifetimeEvent(string msg, 
            object eventSource, int eventCode, 
            int eventDetailCode):
          base(msg, eventSource, eventCode, eventDetailCode)
        {
            // Perform custom initialization.
            customCreatedMsg =
             string.Format("Event created at: {0}",
             DateTime.Now.TimeOfDay.ToString());
        }


        // Raises the SampleWebRequestEvent.
        public override void Raise()
        {
            // Perform custom processing. 
            customRaisedMsg = string.Format(
                "Event raised at: {0}\n", 
                DateTime.Now.TimeOfDay.ToString());
            // Raise the event.
            base.Raise();
        }

        //Formats Web request event information.
        public override void FormatCustomEventDetails(
            WebEventFormatter formatter)
        {
            base.FormatCustomEventDetails(formatter);

            // Add custom data.
            formatter.AppendLine("");

            formatter.IndentationLevel += 1;
    
            formatter.TabSize = 4;
       
            formatter.AppendLine(
                 "*SampleWebApplicationLifetimeEvent Start *");
            formatter.AppendLine("Custom information goes here");
            formatter.AppendLine(
                "* SampleWebApplicationLifetimeEvent End *");
            // Display custom event timing.
            formatter.AppendLine(customCreatedMsg);
            formatter.AppendLine(customRaisedMsg);
        
            formatter.IndentationLevel -= 1;
        }
    }
}
Imports System.Text
Imports System.Web
Imports System.Web.Management


' Implements a custom WebManagementEvent class. 

Public Class SampleWebApplicationLifetimeEvent
    Inherits System.Web.Management.WebApplicationLifetimeEvent
    Private customCreatedMsg, customRaisedMsg As String
    
    ' Invoked in case of events identified only by 
    ' their event code.
    Public Sub New(ByVal msg As String, _
    ByVal eventSource As Object, _
    ByVal eventCode As Integer)
        MyBase.New(msg, eventSource, eventCode)
        ' Perform custom initialization.
        customCreatedMsg = _
        String.Format("Event created at: {0}", _
        DateTime.Now.TimeOfDay.ToString())

    End Sub
    
    
    ' Invoked in case of events identified by their 
    ' event code.and related event detailed code.
    Public Sub New(ByVal msg As String, _
    ByVal eventSource As Object, _
    ByVal eventCode As Integer, _
    ByVal eventDetailCode As Integer)
        MyBase.New(msg, eventSource, _
        eventCode, eventDetailCode)
        ' Perform custom initialization.
        customCreatedMsg = _
        String.Format("Event created at: {0}", _
        DateTime.Now.TimeOfDay.ToString())
    End Sub


    ' Raises the SampleWebRequestEvent.
    Public Overrides Sub Raise() 
        ' Perform custom processing. 
        customRaisedMsg = _
        String.Format("Event raised at: {0}" + _
        vbLf, DateTime.Now.TimeOfDay.ToString())
        ' Raise the event.
        MyBase.Raise()
    
    End Sub
    
    'Formats Web request event information.
    Public Overrides Sub FormatCustomEventDetails( _
    ByVal formatter As WebEventFormatter)
        MyBase.FormatCustomEventDetails(formatter)

        ' Add custom data.
        formatter.AppendLine("")

        formatter.IndentationLevel += 1

        formatter.TabSize = 4

        formatter.AppendLine( _
        "*SampleWebApplicationLifetimeEvent Start *")
        formatter.AppendLine("Custom information goes here")
        formatter.AppendLine( _
        "* SampleWebApplicationLifetimeEvent End *")
        ' Display custom event timing.
        formatter.AppendLine(customCreatedMsg)
        formatter.AppendLine(customRaisedMsg)

        formatter.IndentationLevel -= 1

    End Sub
End Class

В следующем фрагменте файла конфигурации показано, как настроить healthMonitoring раздел файла конфигурации для добавления кода, определенного SampleWebApplicationLifetimeEvent выше, в систему мониторинга работоспособности ASP.NET. Чтобы добавить событие в систему, необходимо определить событие, добавив новую запись в eventMappings раздел, и сопоставить событие с поставщиком, добавив новую запись в rules раздел.

<healthMonitoring  
  enabled="true"  
  heartBeatInterval="0">  

    <eventMappings>  
       <clear />  
       <!-- Configure the application lifetime event -->  
       <!-- object to handle the Web application events. -->  
       <add name="SampleApplicationLifetimeEvents"  
         type="System.Web.Management.SampleWebApplicationLifetimeEvent,  
         System.Web,Version=2.0.3600.0,  
         Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" />  
     </eventMappings>  

    <rules>  
      <clear/>  
       // Configure the connection between the   
       // application lifetime event object   
       // and the provider that must process it.  
       <add name="Custom Application Events"  
         eventName="SampleApplicationLifetimeEvents"  
         provider="EventLogProvider"  
         profile="Default"  
         minInterval="00:01:00" />  
    </rules>  

</healthMonitoring>  

Комментарии

ASP.NET мониторинг работоспособности позволяет рабочим и операционным сотрудникам управлять развернутыми веб-приложениями. Пространство System.Web.Management имен содержит типы событий работоспособности, отвечающие за упаковку данных о состоянии работоспособности приложения, и типы поставщиков, ответственные за обработку этих данных. Он также содержит вспомогательные типы, помогающие при управлении событиями работоспособности.

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

При возникновении экземпляра WebApplicationLifetimeEvent ASP.NET мониторинг работоспособности обновляет счетчик производительности Событий времени существования приложения. Эти события можно записать в журнал, WebApplicationLifetimeEvent добавив объект в rules подраздел healthMonitoring раздела файла конфигурации, как показано в следующем примере.

<rules>  
  <add name="Application Events"  
    eventName="Application Lifetime Events"  
    provider="EventLogProvider"  
    profile="Default"  
    minInterval="00:01:00" />  
</rules>  

Счетчик производительности "События времени существования приложения" содержит сумму всех ASP.NET событий времени существования. Чтобы просмотреть этот счетчик производительности в системном мониторе (PerfMon), в окне Добавление счетчиков выберите ASP.NET из раскрывающегося списка Объект производительности . Выберите счетчик производительности Событий времени существования приложения и нажмите кнопку Добавить . Дополнительные сведения см. в разделе Использование системного монитора (PerfMon) с ASP.NET приложениями на сайте MSDN. Если вы разрешаете регистрировать события в стандартном EventLogWebEventProviderрежиме , их можно просмотреть в средстве просмотра событий , выбрав журнал приложений .

Внимание!

WebApplicationLifetimeEvent Так как объект является событием большого объема, ведение журнала является ресурсоемким и может замедлить работу системы. Это также может привести к перезаписи других событий в случае EventLogWebEventProvider класса из-за большого объема событий и способа ведения журнала событий.

Примечание

В большинстве случаев вы сможете использовать ASP.NET типы мониторинга работоспособности, как реализовано, и вы будете управлять системой мониторинга работоспособности, указав значения в healthMonitoring разделе конфигурации. Вы также можете наследовать от типов мониторинга работоспособности для создания собственных пользовательских событий и поставщиков. Пример наследования от WebApplicationLifetimeEvent класса см. в примере, приведенном в этом разделе.

Примечания для тех, кто наследует этот метод

При форматировании пользовательских сведений о событиях для отображения переопределите FormatCustomEventDetails(WebEventFormatter) метод, а не ToString метод . Это позволит избежать перезаписи или незаконного изменения конфиденциальной системной информации.

Конструкторы

WebApplicationLifetimeEvent(String, Object, Int32, Int32)

Инициализирует класс WebApplicationLifetimeEvent, используя предоставленные параметры.

WebApplicationLifetimeEvent(String, Object, Int32)

Инициализирует класс WebApplicationLifetimeEvent, используя предоставленные параметры.

Свойства

EventCode

Получает значение кода, связанное с событием.

(Унаследовано от WebBaseEvent)
EventDetailCode

Получает подробный код события.

(Унаследовано от WebBaseEvent)
EventID

Получает идентификатор, связанный с событием.

(Унаследовано от WebBaseEvent)
EventOccurrence

Получает значение счетчика, показывающее, сколько раз произошло событие.

(Унаследовано от WebBaseEvent)
EventSequence

Получает количество порождений события приложением.

(Унаследовано от WebBaseEvent)
EventSource

Получает объект, порождающий событие.

(Унаследовано от WebBaseEvent)
EventTime

Получает время порождения события.

(Унаследовано от WebBaseEvent)
EventTimeUtc

Получает время порождения события.

(Унаследовано от WebBaseEvent)
Message

Получает сообщение, описывающее событие.

(Унаследовано от WebBaseEvent)
ProcessInformation

Получает сведения о размещающем приложение процессе ASP.NET.

(Унаследовано от WebManagementEvent)

Методы

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
FormatCustomEventDetails(WebEventFormatter)

Обеспечивает стандартное форматирование сведений о событии.

(Унаследовано от WebBaseEvent)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
IncrementPerfCounters()

Используется для внутренних целей для увеличения значений счетчиков производительности.

MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
Raise()

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

(Унаследовано от WebBaseEvent)
ToString()

Форматирует сведения события для последующего отображения.

(Унаследовано от WebBaseEvent)
ToString(Boolean, Boolean)

Форматирует сведения события для последующего отображения.

(Унаследовано от WebBaseEvent)

Применяется к

См. также раздел