다음을 통해 공유


방법: 상태 모니터링 사용자 지정 공급자 예제 구현

업데이트: 2007년 11월

사용자 지정 ASP.NET 상태 모니터링 공급자 예제 항목의 예제에서는 ASP.NET 상태 이벤트를 처리하는 사용자 지정 공급자를 만드는 방법을 보여 줍니다. 이 코드 예제에서는 이벤트 정보를 로컬 파일에 작성하는 사용자 지정 공급자를 만들기 위해 BufferedWebEventProvider 클래스에서 파생시키는 방법을 보여 줍니다.

이 예제는 매우 간단합니다. 여기에서는 사용자 지정 공급자의 기본 메커니즘에 대한 모든 권한을 제공하는 것이 목적입니다. 실제 시나리오에서는 이 예제 코드를 통해 응용 프로그램의 동작을 사전에 검사하여 ASP.NET 상태 모니터링에서 제공하는 정보를 쉽게 이해할 수 있습니다.

예제 공급자에서는 다음과 같은 기능을 보여 줍니다.

  • BufferedWebEventProvider에서 상속하여 사용자 지정 공급자를 빌드합니다. 이 공급자를 사용하면 이벤트 정보를 기록하기 전에 다양한 요소(예: 지정된 시간 간격)에 따라 이벤트 정보를 저장할 수 있습니다.

  • 사용자 지정 공급자를 구성합니다.

  • Windows 이벤트 뷰어와 상호 작용합니다.

이 예제를 실행하려면 다음과 같은 조건이 충족되어야 합니다.

사용자 지정 이벤트 공급자를 빌드하려면

  • 사용자 지정 이벤트 공급자를 라이브러리로 컴파일한 다음 이 라이브러리를 ASP.NET 응용 프로그램의 Bin 디렉터리에 추가하거나, 어셈블리에 강력한 이름을 지정하여 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>
    
    참고:

    컴파일러 명령을 실행할 수 없는 경우에는 해당 명령을 실행하기 전에 Windows PATH 변수에 .NET Framework 설치 경로를 추가해야 합니다. Windows에서 내 컴퓨터를 마우스 오른쪽 단추로 클릭하고 속성, 고급 탭, 환경 변수 단추를 차례로 클릭합니다. 그런 다음 시스템 변수 목록에서 Path 변수를 두 번 클릭하고 변수 값 텍스트 상자에서 기존 값의 끝에 세미콜론(;)을 추가한 후 .NET Framework 설치 경로를 입력합니다. 일반적으로 .NET Framework는 Windows 설치 폴더의 \Microsoft.NET\Framework\versionNumber에 설치됩니다.

예제를 사용하도록 응용 프로그램을 구성하려면

  1. 응용 프로그램의 루트 폴더에 Web.config 파일이 이미 있으면 이 파일을 엽니다. 그렇지 않으면 Web.config라는 텍스트 파일을 만든 후 다음 텍스트를 추가합니다.

    <?xml version="1.0"?>
    <configuration xmlns="https://schemas.microsoft.com/.NetConfiguration/v2.0">
      <system.web>
      </system.web>
    </configuration>
    
  2. system.web 태그 내에 다음과 같은 healthMonitoring 요소를 추가합니다.

    <healthMonitoring
        heartBeatInterval="0" enabled="true">
      <bufferModes>
        <add name="Custom Notification"
          maxBufferSize="10"
          maxFlushSize="5"
          urgentFlushThreshold="2"
          regularFlushInterval="Infinite"
          urgentFlushInterval="00:00:30"
        />
      </bufferModes>
      <providers>
        <add name="SampleEventProvider" type="Samples.AspNet.Management.SampleBufferedEventProvider" 
        buffer="true"
        bufferMode="Custom Notification" />
      </providers>
      <profiles>
        <add name="Custom"
          minInstances="1"
          maxLimit="Infinite"
          minInterval="00:00:00" />
      </profiles>
      <rules>
        <add name="Custom Event Provider"
          eventName="All Events"
          provider="SampleEventProvider"
          profile="Custom" />
      </rules>
    </healthMonitoring>
    

    healthMonitoring 요소의 설정에서는 providers 요소를 사용하여 사용자 지정 공급자를 추가하고, profiles 요소를 지정하여 (이 경우에는) 이벤트 발생 횟수를 제한함으로써 서버를 보호하도록 합니다. 또한 이 예제에는 이벤트를 프로필 및 공급자와 연결하는 rules 요소도 포함되어 있습니다.

    type 특성에는 이전 코드 예제와 같이 클래스 이름만 나열하거나 다음 예제와 같이 정규화된 형식을 나열할 수 있습니다.

    type="Samples.AspNet.Management.SampleWebRequestEvent,
    Sample.SampleCustomEventProvider,Version=1.0.0.0,Culture=neutral, 
    PublicKeyToken=xxxxxxxxxxxx"
    
    참고:

    정규화된 형식은 클래스가 GAC 또는 Bin 디렉터리에 설치된 경우에만 필요합니다.

사용자 지정 웹 이벤트를 테스트하려면

  1. 브라우저에서 웹 응용 프로그램의 페이지를 요청합니다.

    응용 프로그램에서 페이지를 실행하면 사용자 지정 이벤트가 발생합니다.

  2. 사용자 지정 이벤트 데이터를 보려면 코드에서 logFilePath 변수에 지정된 로그 파일을 엽니다.

참고 항목

개념

사용자 지정 ASP.NET 상태 모니터링 공급자 예제

ASP.NET 상태 모니터링 개요

참조

healthMonitoring 요소(ASP.NET 설정 스키마)

EventLogWebEventProvider

기타 리소스

ASP.NET 웹 사이트 만들기