1.21 jigowatts

Great Scott!

ASP.NET Health Monitoring機能が動かない

概要

Health Monitoring機能を使ってASP.NETアプリケーションのエラーイベントを収集しているシステムがありまして、ASP.NETのエラーイベントを拾うとSQLServerのdbo.aspnet_WebEvent_Eventsテーブルへ登録していく仕組みです。
このアプリを新しいDBに移行するために以下のデータベースオブジェクトも移行したのですが、エラーイベントを拾わなくなってしまいました。

Table
  • dbo.aspnet_SchemaVersions
  • dbo.aspnet_WebEvent_Events
Procedure
  • dbo.aspnet_CheckSchemaVersion
  • dbo.aspnet_WebEvent_LogEvent

解決

aspnet_SchemaVersionsテーブルにデータを登録することで動きました!

common              1   True
health monitoring   1   True

本来の構築手順としてはAspnet_regiis.exeツールを使って環境を構築していくようですが、この辺の知識や手順が全くわからなかった。。


■Web.config

<?xml version="1.0" encoding="UTF-8"?>

<configuration>
  <connectionStrings>
    <add name="ConnectionString" connectionString="server=(localdb)\v11.0;database=LocalDB;Integrated Security=True"/>
  </connectionStrings>

  <system.web>
    <healthMonitoring enabled="true">
      <eventMappings>
        <clear />
        <add name="All Errors" type="System.Web.Management.WebBaseErrorEvent" startEventCode="0" endEventCode="2147483647" />
      </eventMappings>
      <providers>
        <clear />
        <add connectionStringName="ConnectionString" maxEventDetailsLength="1073741823" buffer="false" name="SqlWebEventProvider" type="System.Web.Management.SqlWebEventProvider" />
      </providers>
      <rules>
        <clear />
        <add name="All Errors Default" eventName="All Errors" provider="SqlWebEventProvider" profile="Default" minInstances="1" maxLimit="Infinite" minInterval="00:00:00" custom="" />
      </rules>
    </healthMonitoring>
  </system.web>
</configuration>