[英]Services.Configuration.Replace in .Net Core 2.2 Startup
我正在尋找替代默認API 404的選項,但未在Web API中找到路由錯誤,並且發現此鏈接覆蓋路由
根據描述,我可以創建如下的類
public class HttpNotFoundAwareController:ApiControllerActionSelector
{
public override HttpActionDescriptor SelectAction(HttpControllerContext controllerContext)
{
HttpActionDescriptor descriptor = null;
try
{
descriptor= base.SelectAction(controllerContext);
}
catch(HttpResponseException ex)
{
var code = ex.Response.StatusCode;
}
return descriptor;
}
}
但是,此替代也需要注冊。 通過鏈接,應在WebAPIConfig中完成,如下所示
configuration.Services.Replace(typeof(IHttpControllerSelector), new HttpNotFoundAwareDefaultHttpControllerSelector(configuration));
但是我不確定,如何在.Net Core Startup.cs文件中注冊覆蓋? 因為沒有“服務”可用的“替換”屬性。
有人可以幫忙嗎?
為了捕獲404
並返回自定義錯誤,您可以嘗試使用UseStatusCodePages
app.UseStatusCodePages(new StatusCodePagesOptions {
HandleAsync = async context =>
{
if (context.HttpContext.Response.StatusCode == StatusCodes.Status404NotFound)
{
await context.HttpContext.Response.WriteAsync($"{context.HttpContext.Request.Path} is not Found");
}
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.