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
環境
Visual Studio 2010
ASP.NET
.NET Framework 4
SQL Server 2008 R2
解決
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>