gpt4 book ai didi

asp.net-core - .NET 5.0 生产中的自定义错误页面

转载 作者:行者123 更新时间:2023-12-04 12:00:03 30 4
gpt4 key购买 nike

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

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseStatusCodePagesWithRedirects("/Error/{0}");
}
...
}
链接到一个简单的 错误 Controller
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");
}
}
然后转到 Error.cshtml 在共享中找到。
这不会删除默认值 Status Code: 404; Not Found页面,但如果我转到 localhost/Error/404 可以访问该页面直接通过网址。
这就是我记得使用以前版本的 .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"
}
}

最佳答案

我知道你在运行你的项目 IIS Express .为此,您无法按预期找到自定义错误页面。您应该使用 "ASPNETCORE_ENVIRONMENT": "Production"在您的 profilelaunchsettings.json .它解决了您的问题。只需更改您的代码,如下所示。


//clarify

"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Production" //add this
}
},
"Proj_prod": {
"commandName": "Project",
"launchBrowser": true,
"applicationUrl": "https://localhost:5001;http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}

关于asp.net-core - .NET 5.0 生产中的自定义错误页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67752940/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com