.NET 5.0 生产中的自定义错误页面

UgK*_*Knu 6 custom-error-pages asp.net-core-mvc asp.net-core .net-5

我正在尝试在我的 .NET 5.0 中实现一个自定义 404 页面,以便在 Web 应用程序投入生产时使用。我在Startup.cs 中实现了以下内容;

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            } 
            else
            {
                app.UseStatusCodePagesWithRedirects("/Error/{0}");
            } 
            ...
}
Run Code Online (Sandbox Code Playgroud)

链接到一个简单的ErrorController

public class ErrorController : Controller
    {
        [Route("/Error/{statusCode}")]
        public IActionResult HttpStatusCodeHandler(int statusCode)
        {
            switch(statusCode)
            {
                case 404:
                    //ViewBag.ErrorMessage("Resource could not be found.");
                    break;
            }
            return View("Error");
        }
    }
Run Code Online (Sandbox Code Playgroud)

和去Error.cshtml中发现的共享

这对删除默认Status Code: 404; Not Found页面没有任何作用,但如果我localhost/Error/404直接通过 url转到该页面,则可以访问该页面。

这就是我记得使用以前版本的 .NET 实现这一点的方式,但现在我不确定我是否遗漏了什么,或者新的 .NET 5.0 是否对实现自定义 404 页面有新的要求。

任何帮助将不胜感激。

编辑:launchSettings.json配置文件:

"Proj_prod": {
            "commandName": "Project",
            "dotnetRunMessages": "true",
            "launchBrowser": true,
            "applicationUrl": "https://localhost:5001;http://localhost:5000",
            "environmentVariables": {
                "ASPNETCORE_ENVIRONMENT": "Production"
            }
        }
Run Code Online (Sandbox Code Playgroud)

UgK*_*Knu 4

好吧,有问题的实际代码按预期工作。一位工作伙伴app.UseStatusCodePages();后来在配置中添加了我没有注意到的内容。

(是的,花了 14 天。我终于回到这个问题,才注意到。)