промежуточное ПО пользовательских ошибок в сетевом ядре, не перехватывающее ошибки состояния модели - PullRequest
0 голосов
/ 20 июня 2019

У меня настроено промежуточное программное обеспечение для обработки ошибок в моем приложении API.

в startup.cs я получил следующий код

app.UseErrorHandlingMiddleware(); //this is custom extension method that just does builder.UseMiddleware<ErrorHandlingMiddleware>();
app.UseAuthentication;
app.UseMvc();

любые ошибки, возникающие в приложении, отлавливаются промежуточным программным обеспечением, но если я отправляю недействительную модель в действие контроллера, ошибка проверки состояния модели не обнаруживается моим промежуточным программным обеспечением. Я получаю стандартный 400 неверный ответ на запрос, такой как:

{"errors": {"Имя пользователя": ["Поле имени пользователя обязательно."]}, "Title": "Произошла одна или несколько ошибок проверки.", "Status": 400, "traceId": " 0HLNLAV1FS4IJ: 00000002" }

Что мне нужно сделать, чтобы связующее ПО получало эти ошибки?

Методы вызова промежуточного программного обеспечения следующие:

 public async Task Invoke(HttpContext context /* other dependencies */)
    {
        try
        {
            await next(context);
        }
        catch (Exception ex)
        {
            await HandleExceptionAsync(context, ex);
        }
    }

Нужно ли мне использовать ActionFilter для проверки состояния модели и генерировать исключение, если произошла ошибка, для того, чтобы мое промежуточное программное обеспечение ошибки получило его?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...