>  기사  >  백엔드 개발  >  ASP.NET에서 healthMonitor 특성을 사용하는 방법에 대한 자습서

ASP.NET에서 healthMonitor 특성을 사용하는 방법에 대한 자습서

零下一度
零下一度원래의
2017-07-03 17:11:282432검색

 ASP.NET 2.0에서는 healthMonitoring 속성을 사용하여 events를 모니터링할 수 있습니다. healthMonitoring 속성은 자체 공급자를 구성할 수 있는 메서드 기반 공급자입니다. healthMonitoring 특성을 사용하면 이벤트 로그, SQL Server와 같은 다양한 데이터 소스에 대한 오류, 성공적인 이벤트 등을 기록할 수 있으며 WebEventProvider 클래스를 상속하여 자체 공급자를 만들 수도 있습니다. 이 기사에서는 SqlServer 오류를 감지하고 다른 사람의 이메일 주소로 이메일을 보내는 웹 애플리케이션을 구성하는 과정을 안내하겠습니다. 먼저, 사용할 이벤트를 생성할 수 있는 web.config의 healthMonitoring 프로그램 부분을 살펴보세요.

<healthMonitoring Enabled="true|false" heartBeatInterval="time interval">
 <bufferModes>... </bufferModes>
 <providers>... </providers>
 <eventMappings>... </eventMappings>
 <profiles>... </profiles>
 <rules>... </rules>
</healthMonitoring>

d8aea2075158d792937a399d255d2e1d 요소를 보면 속성을 유효한지 또는 무효로 설정할 수 있는지 확인할 수 있으며, WebHeaderBeatEvent가 깨어나는 시간 간격도 지정할 수 있습니다. healthMonitoring에는 5명의 자녀가 있습니다.

 bufferModes, 여기에서 공급자의 버퍼 크기를 정의할 수 있습니다.

  Providers, 이벤트를 처리하는 Providers는 다음과 같습니다.

 EventMappings, 여기에서 친근한 이벤트 유형과 관련된 이벤트 이름을 그릴 수 있습니다.

 프로필은 이벤트를 구성하는 데 사용할 수 있는 매개변수 세트 컬렉션을 정의합니다.

  규칙, 여기에 Providers의 이벤트 다이어그램을 그립니다.

VS 2550 문서에서 이러한 요소에 대한 자세한 내용을 읽을 수 있습니다.

계속하기 전에 다음은 ASP.NET의 일부 공급자 목록입니다.

System.Web.Management.MailWebEventProvider
System.Web.Management.SimpleMailWebEventProvider
System.Web.Management.TemplatedMailWebEventProvider
System.Web.Management.TraceWebEventProvider
System.Web.Management.EventLogWebEventProvider
System.Web.Management.SqlWebEventProvider
System.Web.Management.WmiWebEventProvider

설명할 필요가 없습니다. 이름만 보면 어떤 일을 하는지 알 수 있습니다. 또한 SqlWebEventProvider는 aspnet_Web_Event 테이블에 이벤트를 저장하는 SQL 서버에 의존하여 작동한다는 점을 언급하세요. 이 데이터베이스를 설치하려면 프레임워크 폴더에 있는 aspnet_regsql.exe 마법사를 실행해야 합니다.

이제 SQL 서버 공급자에 대한 로그인 오류가 발생하고 이메일을 보낼 때 오류가 발생하는 프로그램을 구성합니다.

 다음은 SqlWebEventProvider, SimpleMailWebEventProvider를 사용하여 맞춤법 오류 이벤트를 저장하는 예입니다.

<healthMonitoring enabled="true" heartBeatInterval="0"><bufferModes><add name="Critical Notification" maxBufferSize="100" maxFlushSize="20"urgentFlushThreshold="1" regularFlushInterval="Infinite" urgentFlushInterval="00:01:00" maxBufferThreads="1"/>
<add name="Analysis" maxBufferSize="1000" maxFlushSize="100" urgentFlushThreshold="100"regularFlushInterval="00:05:00" urgentFlushInterval="00:01:00" maxBufferThreads="1"/>
</bufferModes><providers>
<add name="CriticalMailEventProvider" type="System.Web.Management.SimpleMailWebEventProvider, System.Web ..." from=info@nsquared2.net to=fnormen@hotmail.com priority="High" bodyHeader="Warning!"bodyFooter="Please investigate ASAP." subjectPrefix="Action required." buffer="true" bufferMode="Critical Notification" maxEventLength="4096" maxSize="4096" maxMessagesPerNotification="1"/>
<add name="SqlWebEventProvider" type="System.Web.Management.SqlWebEventProvider, System.Web ..."connectionStringName="LocalSqlServer" maxEventDetailsLength="1073741823" buffer="true"bufferMode="Analysis"/>
</providers>
<eventMappings>
<add name="All Errors" type="System.Web.Management.WebBaseErrorEvent, System.Web ..."/><add name="Request Processing Errors" type="System.Web.Management.WebRequestErrorEvent, System.Web .../>
</eventMappings>
<profiles>
<add name="Default" minInstances="1" maxLimit="Infinite" minInterval="00:10:00"/>
</profiles>
<rules>
<add name="All Errors Default" eventName="All Errors" provider="SqlWebEventProvider" profile="Default"minInterval="00:00:30"/>
<add name="Request Processing Errors" eventName="Request Processing Errors" provider="CriticalMailEventProvider" profile="Default"/>
</rules>
</healthMonitoring>

  이 예에서는 SQL 공급자를 사용하여 모든 오류 이벤트를 기록하고 메일 공급자를 사용하여 웹 요청 오류 이벤트가 활성화될 때 메시지를 보냅니다.

  다음은 ASP .NET 2.0과 함께 출시된 몇 가지 이벤트입니다.

System.Web.Management.WebBaseEvent
System.Web.Management.WebHeartBeatEvent
System.Web.Management.WebApplicationLifetimeEvent
System.Web.Management.WebRequestEvent
System.Web.Management.WebBaseErrorEvent
System.Web.Management.WebErrorEvent
System.Web.Management.WebRequestErrorEvent
System.Web.Management.WebAuditEvent
System.Web.Management.WebFailureAuditEvent
System.Web.Management.WebSuccessAuditEvent
System.Web.Management.WebManagementEvent
System.Web.Management.WebViewStateFailureAuditEvent
System.Web.Management.WebAuthenticationFailureAuditEvent
System.Web.Management.WebAuthenticationSuccessAuditEvent

  이러한 이벤트를 사용하여 공급자의 그림을 그릴 수 있습니다. WebBaseEvent 클래스에서 상속된 고유한 이벤트를 만들 수도 있습니다.

 이벤트를 자동으로 깨우려면 WebBaseEvent 클래스의 wakeup 메서드를 사용할 수 있습니다.

try
{
 //....
}
catch(Exception e){ if (HealthMonitoringManager.Enabled) {  WebBaseEvent.Raise(new WebErrorEvent("My Error message", null, 5000, e)); }}
or:
if (HealthMonitoringManager.Enabled){ WebErrorEvent event = new WebErrorEvent("My error message", null, 5000, e); event.Raise();}

위 내용은 ASP.NET에서 healthMonitor 특성을 사용하는 방법에 대한 자습서의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.