c# - UseStatusCodePagesWithReExecute 不会重新执行错误页面
问题描述
我正在使用 ASP.NET 5.0 MVC,并尝试创建自定义 HTTP 错误页面。我已经制定了处理这些错误的操作和视图,并确认如果直接请求它们可以工作。但是,我似乎无法使用UseStatusCodePagesWithReExecute
.
我从我拥有的另一个 ASP.NET 项目中复制粘贴了这一行,该项目在那里工作。
app.UseStatusCodePagesWithReExecute("/Home/HttpError", "?id={0}");
但是,当我请求一个无效的 URI 时,我只会得到一个空白的 404 响应和 Chrome 的默认错误页面。
我尝试使用
app.UseStatusCodePagesWithRedirects("/Home/HttpError", "?id={0}");
这确实有效,但我宁愿重新执行,而不是重定向。
这是我在 Startup.cs 中的完整配置方法。它是 VS 中的默认设置,只是我添加了状态代码行。
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseForwardedHeaders(new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
});
// Use custom HTTP errors
app.UseStatusCodePagesWithReExecute("/Home/HttpError", "?id={0}");
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
}
解决方案
推荐阅读
- swift - 更改 AudioQueueBuffer 的 mAudioData
- laravel - 创建令牌的 laravel 气闸问题:'tokenable_id' 不能为空
- automated-tests - 页面对象模式以及如何实现一些最佳实践
- python - Python 获取在类中找到的每个 ahref 链接的标头状态并使用状态代码打印链接
- python - Pymongo 聚合删除数组字段
- javascript - I want to set undefined value to false
- html - 如何使您的图像徽标位于登录/注册页面的中心?
- node.js - 未定义的 Multer 文件名
- design-patterns - 微服务和接口概念
- python - 在 Windows 中直接在 cmd 上运行 python 命令