首页 文章

ASP.Net核心UseExceptionHandler没有处理所有异常?

提问于
浏览
3

我有一个ASP.Net Core 2 web api项目 . 我已将以下内容添加到Startup.cs文件中的 Configure 方法 app.UseExceptionHandler();

我在Postman测试中注意到我得到了“无法得到响应”的结果 . 服务器端日志记录显示该错误与我的数据库中缺少的表有关 . 哪个好,我可以解决这个问题 . 但我的问题是为什么服务器不会返回500内部服务器错误?为什么它会死亡,并且对Postman没有任何回应?

因此,在我的Controller中,我故意抛出一个Exception来测试处理程序,并从Postman调用URL,实际上,我得到了500内部服务器错误响应,正如预期的那样 .

为什么EFCore抛出的“更深层次”错误没有被ExceptionHandler中间件处理,而且我的应用程序崩溃了?我错过了什么吗?

1 回答

  • 1

    在您的startup.cs中,将 UseMvc() 标记移动到管道的底部,即

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
      ...
      app.UseExceptionHandler();
      app.UseMvcWithDefaultRoute(); 
    }
    

    在我的情况下,当浏览器启动的路由不存在时,请求管道在启动时出现故障 . 在那种情况下,app.UseMvc()之前的app.UseExceptionHandler()没有被执行 .

相关问题