【问题标题】:How to handle Custom Errors With .Net Core 2.2 MVC如何使用 .Net Core 2.2 MVC 处理自定义错误
【发布时间】:2019-10-01 21:47:03
【问题描述】:

我在 youtube 上看到了如何处理自定义错误,但它是使用 web.config 的,而在 dotnet core 2.2 中它没有这个文件,或者我没有通过 Visual Studio 2019 找到它。

【问题讨论】:

    标签: asp.net-core-mvc custom-error-pages asp.net-core-2.2


    【解决方案1】:

    ASP.NET Core 不使用 Web.config,除非您在 IIS 中托管,然后仅用于最小的 IIS 模块配置。自定义错误处理是通过 Startup.Configure 方法中的中间件配置完成的。不过,这实际上已包含在默认项目模板中,因此奇怪的是,您没有默认包含至少可以从中工作的内容。无论如何,您正在查看以下内容:

    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
        app.UseDatabaseErrorPage();
    }
    else
    {
        app.UseExceptionHandler("/Error");
    }
    

    这通常会将任何全局未捕获的异常路由到一般的/Error 端点,该端点可以是控制器操作或 Razor 页面。很可能,您需要更多的灵活性,并且您也不想在浏览器中公开实际的“错误”URL,因此您可能会将UseExceptionHandler 替换为UseStatusCodePagesWithReExecute

    app.UseStatusCodePagesWithReExecute("/StatusCode","?code={0}");
    

    这将保留 URL,而无需重定向和加载 /StatusCode 端点,同时传递特定的状态代码(404、400、500 等),允许您根据错误类型返回自定义消息。

    所有这些以及更多内容都在documentation 中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-01
      • 2020-07-11
      • 2020-03-08
      • 2014-12-01
      • 1970-01-01
      • 2022-08-17
      • 1970-01-01
      • 2019-07-27
      相关资源
      最近更新 更多