微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net-core-mvc – 如何在Asp.Net Core中自定义Developer Exception页面?

在Startup.cs文件的Configure方法中,常见的代码如下所示:

if(env.IsDevelopment()) {
     app.UseDeveloperExceptionPage();
}

app.UseDeveloperExceptionPage(); line会导致在发生异常时在浏览器中显示详细信息,这对调试很有帮助.

我确定你已经看到了输出,它看起来像这样:

enter image description here

这是一个很好的开始,但有时作为开发人员,我们会向异常添加其他信息以提供有关错误的详细信息. System.Exception类具有可用于存储此类信息的Data集合.因此,例如,继承自Exception的自定义AppException具有一个构造函数,除了标准异常消息之外还接受私有消息,如下所示:

/// <summary>
 /// Application Exception. 
 /// </summary>
 /// <param name="message">Message that can be displayed to a visitor.</param>
 /// <param name="privateMessage">Message for developers to pinpoint the circumstances that caused exception.</param>
 /// <param name="innerException"></param>
    public AppException(string message,string privateMessage,Exception innerException = null) 
        : base(message,innerException) {

        //Placing it in the exception Data collection makes the info available in the debugger
        this.Data["PrivateMessage"] = privateMessage;
    }

因此,当您可以进行映像时,如果开发人员异常页面显示来自Exception的PrivateMessage(如果它是AppException)以及所有其他信息,那就太好了.我看起来高低不知道如何定制或扩充开发人员异常页面显示的信息,但却无法找到有关它的任何好信息.

如何自定义或扩充开发人员例外页面显示的信息?

解决方法

app.UseDeveloperExceptionPage()扩展方法是将DeveloperExceptionPageMiddleware添加到请求/响应管道中的简写.您可以找到DeveloperExceptionPageMiddleware here的完整源代码,包括中间件本身和视图.它应该是滚动自己的自定义中间件的绝佳基础.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐