首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CustomErrors web.config设置与蔚蓝应用程序洞察力日志之间的关系是什么?

CustomErrors web.config设置与蔚蓝应用程序洞察力日志之间的关系是什么?
EN

Stack Overflow用户
提问于 2022-07-20 05:53:41
回答 1查看 155关注 0票数 2

链接:https://learn.microsoft.com/en-us/azure/azure-monitor/app/asp-net-exceptions#prior-versions-support

如果CustomErrors配置关闭,那么HTTP就可以收集异常。

代码语言:javascript
复制
//If customError is Off, then AI HTTPModule will report the exception
                if (filterContext.HttpContext.IsCustomErrorEnabled)
                {   //or reuse instance (recommended!). see note above
                    var ai = new TelemetryClient();
                    ai.TrackException(filterContext.Exception);
                }

如果是IsCustomErrorEnabled,那么它将跟踪异常。要使IsCustomErrorEnabled成为真,customError必须是打开的。那么,为什么它会说-如果customError关闭,那么AI HTTPModule将报告异常?

EN

回答 1

Stack Overflow用户

发布于 2022-07-26 08:45:00

我认为这个Microsoft示例中的评论有点误导人,以下是它的含义:

  • 如果CustomErrorsOff,则Application模块将按预期处理所有异常。应用程序洞察HTTP模块应该出现在web.config <modules>部分
  • 如果CustomErrorsOn,则Application模块将无法跟踪异常,这就是为什么我们需要使用自定义属性类进行解决的原因

因此,属性示例代码使用语句if (filterContext.HttpContext.IsCustomErrorEnabled)避免两次记录异常:在自定义属性和Application模块中。

如果评论说的是这样的话,那就更清楚了:

代码语言:javascript
复制
//The attribute should track exceptions only when CustomErrors setting is On
//if CustomErrors is Off, exceptions will be caught by AI HTTP Module
if (filterContext.HttpContext.IsCustomErrorEnabled)
{
    var ai = new TelemetryClient();
    ai.TrackException(filterContext.Exception);
}

请注意,以上所有内容仅适用于MVC 4和以前的版本。从MVC 5开始,Application可以自动收集未处理的异常,不需要任何解决办法。

UPDATE:我建议对此文档页进行改进,它已经得到了Azure团队的批准。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73046558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档