2

我正在测试 ASP.NET MVC 中的一些错误处理,但我的异常每分钟只记录一次(至少看起来是这样)。

我打开了 CustomErrors:

<customErrors mode="On" defaultRedirect="~/Home/Error">

我删除了 HandleErrorAttribute 的全局过滤器。我的控制器和操作没有 HandleError 属性。

我有一个控制器操作,它会引发如下异常:

public ActionResult Test()
{
    var random = new Random();

    throw new Exception(random.Next().ToString());
}

但是,如果我多次访问此页面(不能只是因为它重定向而刷新),我每分钟只会在 Windows 事件日志中看到 1 个事件。我尝试从另一个浏览器访问同一页面,但也没有记录该异常。

ASP.NET 或 Windows 事件日志是否有某种速率限制?

4

1 回答 1

0

速率限制由 ASP.NET 根据 system.web/healthMonitoring/rules/add 的属性 minInterval 和 Web.config 中的 system.web/healthMonitoring/profiles/add 元素完成

https://msdn.microsoft.com/library/23t1tcty%28v=vs.100%29.aspx

为了记录所有错误,您可以将其添加到 Web.config ( source ):

<system.web>
    <healthMonitoring>
        <rules>
            <!-- Make sure all errors are logged to the EventLogProvider ("Default" profile only allows 1 error per minute) -->
            <remove name="All Errors Default" />
            <add name="All Errors Default" eventName="All Errors" profile="Critical" provider="EventLogProvider" />
        </rules>
    </healthMonitoring>
</system.web>
于 2016-02-23T12:03:22.077 回答