Обработка 404 в MVC Core API Project - PullRequest
0 голосов
/ 17 марта 2019

Я пытаюсь выяснить, где я ошибся. Я хочу поймать 404 ошибки, которые приходят к моему API. У меня установлена ​​промежуточная программа, но исключение не происходит, когда я пытаюсь перейти на страницу, которая не существует.

public async Task Invoke(HttpContext context)
{
    try
    {
        await _requestDelegate.Invoke(context);
    }
    catch (Exception exception)
    {
        await HandleExceptionAsync(context, exception);
    }
}


//in startup
app.UseMiddleware<ExceptionHandler>();

и я регистрирую его в автозагрузке, это первое, что я делаю, чтобы убедиться, что он обрабатывает все остальное.

1 Ответ

1 голос
/ 17 марта 2019

Звучит так, будто вы хотите, чтобы UseStatusCodePagesWithReExecute перехватил 404 и изменил ответ, журнал, и т. Д.

//Startup.cs
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    ...
    app.UseStatusCodePagesWithReExecute("/error/", "?statusCode={0}");
    ...
}

//SomeController.cs
public IActionResult Error(int? statusCode = null)
{
    if(statusCode == 404) return new ObjectResult(new { message = "404 - Not Found" });
    ...
}
...