我有一个ASP.Net Core 2 web api项目 . 我已将以下内容添加到Startup.cs文件中的 Configure
方法 app.UseExceptionHandler();
我在Postman测试中注意到我得到了“无法得到响应”的结果 . 服务器端日志记录显示该错误与我的数据库中缺少的表有关 . 哪个好,我可以解决这个问题 . 但我的问题是为什么服务器不会返回500内部服务器错误?为什么它会死亡,并且对Postman没有任何回应?
因此,在我的Controller中,我故意抛出一个Exception来测试处理程序,并从Postman调用URL,实际上,我得到了500内部服务器错误响应,正如预期的那样 .
为什么EFCore抛出的“更深层次”错误没有被ExceptionHandler中间件处理,而且我的应用程序崩溃了?我错过了什么吗?
1 回答
在您的startup.cs中,将
UseMvc()
标记移动到管道的底部,即在我的情况下,当浏览器启动的路由不存在时,请求管道在启动时出现故障 . 在那种情况下,app.UseMvc()之前的app.UseExceptionHandler()没有被执行 .