asp.net-mvc – ASP.Net Core在调试模式下运行时不会抛出异常

我正在使用Visual Studio 2015 Update 3和ASP.NET Core.其中一个API(Account)依赖于使用Redis的缓存服务.

public AccountController(Cache.Contracts.ICacheManager cacheManager)
{
     _cacheManager = cacheManager;
}

当Redis未运行时,api / account应该不起作用,因为Cache Service应该与Redis建立连接.

在启动类中:

public void Configure(IApplicationBuilder app,IHostingEnvironment env,ILoggerFactory loggerFactory)
 {      
     loggerFactory.AddConsole();
     loggerFactory.AddDebug();
 }

请求api /帐户时

从Visual Studio运行项目

它给出了以下内容

The localhost page isn’t working

localhost is currently unable to handle this request.

使用dotnet run从powershell运行时:

enter image description here

这也是例外设置

enter image description here

为什么Visual Studio中没有抛出错误?我需要知道导致我的应用程序崩溃的错误.

解决方法

在请求管道期间抛出错误.所以,你可能不会直接看到它.

添加开发人员异常页面app.UseDeveloperExceptionPage()以查看详细信息而不是通用消息和/或添加自定义中间件以捕获每个请求上发生的所有异常.在这种情况下,您可以设置断点并检查异常或记录它:

app.Use(async (ctx,next) =>
{
    try
    {
        await next.Invoke();
    }
    catch (Exception ex)
    {

    }
});

重要的是,在开始之前,在任何其他中间件或.UseMvc等之前添加此中间件…

相关文章

本文将从上往下,循序渐进的介绍一系列相关.NET的概念,先从...
基于 .NET 的一个全新的、好用的 PHP SDK + Runtime: Pe...
.NET 异步工作原理介绍。
引子 .NET 6 开始初步引入 PGO。PGO 即 Profile Guided Opti...
前言 2021/4/8 .NET 6 Preview 3 发布,这个版本的改进大多来...
前言 开头防杠:.NET 的基础库、语言、运行时团队从来都是相...