ASP.NET Core基础之异常中间件

 更新时间:2022年02月10日 09:04:08   作者:痕迹g  
这篇文章介绍了ASP.NET Core基础之异常中间件,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

了解异常中间件

首先,使用ASP.NET模板创建一个核心应用程序。默认情况下,ASP.NET核心应用程序只是返回应用程序未处理的异常的状态代码。如下所示,我们引发异常。

运行应用程序时,将得到以下输出。

如上图所示,它为您提供的状态代码为 500,这意味着内部服务器错误。但是,作为开发人员,在开发应用程序时,您应该知道有关页面上异常的详细信息,以便可以采取必要的操作来修复错误。

如何使用异常中间件?

如果希望应用程序显示显示有关未处理异常的详细信息的页面,则需要在请求处理管道中配置开发人员异常页面中间件。

为此,请修改Startup类的Configure 方法,如下所示,以添加开发人员异常页中间件,该中间件将处理应用程序中发生的未处理异常。

现在运行该应用程序,它将显示以下页面,其中包含有关未处理异常的详细信息。

如上图所示,“开发人员异常”页面包含五个选项卡,例如“堆栈”,“队列”,“ Cookie”,“标题”和“路由”。

  • 1.堆栈:“堆栈”选项卡提供堆栈跟踪信息,该信息指示确切的异常发生位置,文件名以及导致异常的行号。
  • 2.查询:“查询”选项卡提供有关查询字符串的信息。
  • 3.Cookies:“ Cookies”选项卡显示有关请求设置的cookie的信息。
  • 4.标头:“标头”选项卡提供有关标头的信息,该信息由客户端在发出请求时发送。
  • 5.路由:“路由”选项卡提供有关方法的“路由模式”和“路由HTTP动词”类型等信息。

现在,如果您验证“查询”选项卡和“ Cookies”选项卡,那么您将看不到任何信息,因为您没有在URL中传递任何查询字符串值,或者未在请求中设置Cookie。

注意:仅当应用程序在开发环境中运行时,才应启用“开发人员异常页面中间件”。 当应用程序在生产环境中运行时,您不想共享详细的异常信息。

如何自定义UseDeveloperExceptionPage中间件?

如果需要,还可以自定义UseDeveloperExceptionPage中间件。 您需要记住的一点是,每当您要在ASP.NET Core中自定义中间件组件时,都需要使用相应的Options对象。 例如

  • 1.UseDeveloperExceptionPage =>使用DeveloperExceptionPageOptions对象自定义此中间件
  • 2.UseDefaultFiles =>使用DefaultFilesOptions对象来自定义此中间件
  • 3.UseStaticFiles =>使用StaticFileOptions对象来自定义此中间件
  • 4.UseFileServer =>使用FileServerOptions对象来自定义此中间件

由于我们将自定义UseDeveloperExceptionPage()中间件组件,因此我们需要使用DeveloperExceptionPageOptions对象。 因此,如下所示修改Startup类的Configure方法。

如您在上面的代码中看到的,我们正在使用一个名为SourceCodeLineCount的属性。 DeveloperExceptionPageOptions类的SourceCodeLineCount属性指定在导致异常的代码行之前和之后要包含的代码行数。

现在,如果在进行上述更改的情况下运行应用程序,则将出现以下错误。 请查看错误的行号,即37行。同时,请查看错误行之前和之后的行号。

在哪配置UseDeveloperExceptionPage中间件?

我们需要在应用程序的请求处理管道中尽早配置UseDeveloperExceptionPage()中间件,以便它可以处理未处理的异常,然后显示带有异常详细信息的Developer Exception Page。

让我们看看在导致异常的中间件之后配置UseDeveloperExceptionPage()中间件时发生了什么。 请如下所示修改Configure()方法。

完成上述更改后,当我们运行该应用程序时,它不会显示开发人员的异常页面,而只会返回默认的错误状态代码。 这就是为什么我们需要尽早配置UseDeveloperExceptionPage()中间件来处理请求处理管道中应用程序未处理的异常的原因。

到此这篇关于ASP.NET Core基础之异常中间件的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • .Net行为型设计模式之模板方法模式(Template Method)

    .Net行为型设计模式之模板方法模式(Template Method)

    这篇文章介绍了.Net行为型设计模式之模板方法模式(Template Method),文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • 如何在WebForm中使用javascript防止连打(双击)

    如何在WebForm中使用javascript防止连打(双击)

    如何在WebForm中使用javascript防止连打(双击)...
    2007-01-01
  • 利用C#远程存取Access数据库

    利用C#远程存取Access数据库

    目前,基于数据库服务器的桌面管理程序和Web程序已经有太多的应用了,尤其是网络的大量普及,孤立地数据库管理系统无法胜任分布式管理应用,但是面对基于Access数据库的现有的桌面应用我们也无法完全的摒弃。我们利用.Net 远程处理功能将连接和存取Access的行为封装为一个远程对象,供网络中其它客户端通过调用该远程对象来存取实际的Access数据库。我们以 C# 2005 为开发语言来实现上述功能。
    2008-04-04
  • .Net Core使用SignalR实现斗地主游戏

    .Net Core使用SignalR实现斗地主游戏

    本文详细讲解了.Net Core使用SignalR实现斗地主游戏的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-01-01
  • ASP.NET中的Web控件介绍

    ASP.NET中的Web控件介绍

    这篇文章介绍了ASP.NET中的Web控件,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • ASP.Net Core MVC基础系列之中间件

    ASP.Net Core MVC基础系列之中间件

    这篇文章介绍了ASP.Net Core MVC的中间件,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-02-02
  • 使用vs2022在.net6中调试带typescript的静态页面

    使用vs2022在.net6中调试带typescript的静态页面

    这篇文章介绍了使用vs2022在.net6中调试带typescript的静态页面,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12
  • FileStreaReder和StreamReader两个类介绍

    FileStreaReder和StreamReader两个类介绍

    由于最近需要对文件进行处理,所以看了一下MSDN的System.IO读取文件的两个类。下面对两个类简单的整理一下
    2012-04-04
  • 几个C#常用正则表达式的总结

    几个C#常用正则表达式的总结

    几个C#常用正则表达式的总结...
    2006-08-08
  • asp.net TreeView与XML三步生成列表树

    asp.net TreeView与XML三步生成列表树

    只要三个步骤就可以生成平时很常用的树状列表,看代码就可以明白。
    2013-10-10

最新评论