Я хочу реализовать провайдер для ведения журнала ошибок, но мой провайдер никогда не вызывается при возникновении ошибки.
Мой класс провайдера выглядит так:
namespace DynF
{
public class LoggingProvider : System.Web.Management.BufferedWebEventProvider
{
public override void ProcessEventFlush(WebEventBufferFlushInfo flushInfo)
{
System.Diagnostics.Debug.WriteLine("logging!");
}
public override void ProcessEvent(WebBaseEvent eventRaised)
{
System.Diagnostics.Debug.WriteLine("logging!");
}
public override void Initialize(string name, System.Collections.Specialized.NameValueCollection config)
{
System.Diagnostics.Debug.WriteLine("logging!");
}
public override void Shutdown()
{
System.Diagnostics.Debug.WriteLine("logging!");
}
}
}
в моем web.config у меня есть:
<system.web>
<healthMonitoring enabled="true">
<eventMappings>
<clear/>
<add name="All Errors"
type="System.Web.Management.WebBaseErrorEvent, System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"
startEventCode="0"
endEventCode="2147483647"/>
</eventMappings>
<providers>
<clear/>
<add name="LoggingProvider" type="DynF.LoggingProvider"/>
</providers>
<rules>
<clear/>
<add name="LogAllErrors"
eventName="All Errors"
provider="LoggingProvider"/>
</rules>
</healthMonitoring>
</system.web>
При запуске тестовой страницы, которая выдает NonImplementedException, LoggingProvider никогда не выводит «logging!» (и без точек останова вне зависимости от того, где находится класс LoggingProvider, приложение останавливается). Я прочитал этот учебник, и, насколько я понимаю, этого должно быть достаточно, чтобы заставить его работать.
Что мне здесь не хватает?