提供程序未执行
本文关键字:执行 程序 | 更新日期: 2023-09-27 17:59:13
我想实现一个提供程序来记录错误,但当抛出错误时,我的提供程序永远不会被调用。
我的提供者类看起来像:
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类中的哪个位置放置断点都不会使应用程序停止)。我读过这个教程,据我所知,这应该足以让它发挥作用。
我在这里错过了什么?
我需要将buffermode添加到false。
<add name="LoggingProvider" type="DynF.LoggingProvider" buffer="false"/>