Добавить ограничение на загрузку файла и вернуть 400 Плохой запрос - PullRequest
0 голосов
/ 04 апреля 2019

Я использую ASP.NET Core 2.2 в Docker.Мне нужно добавить ограничение в 1 МБ для загрузки файлов и вернуть 400 Плохой запрос, когда он превысит.

Я пытался добавить [RequestSizeLimit(1000000)] в действии

[HttpPost("{id:int}/configs")]
[RequestSizeLimit(1000000)]
public async Task<IActionResult> Add(int id, IFormFile file)

, а затем в моемErrorHandlingMiddleware:

public async Task Invoke(HttpContext context)
{
    try
    {
        await _next(context);
    }
    catch (Exception ex)
    {
        switch (ex)
        {
            ...
            case BadHttpRequestException badRequestException when badRequestException.Message == "Request body too large.":
                context.Response.StatusCode = (int)HttpStatusCode.BadRequest;
                await context.WriteResponse(new ErrorResponse("request", badRequestException.Message));
                break;

    }
}

Когда я запускаю его в режиме отладки без докера, он возвращает 400 неверных запросов.Но если он запускается в Docker, я получаю: код состояния 413 Слишком большой объект запроса и содержимое

<html>
    <head>
        <title>413 Request Entity Too Large</title>
    </head>
    <body>
        <center>
            <h1>413 Request Entity Too Large</h1>
        </center>
        <hr>
        <center>nginx/1.15.6</center>
    </body>
</html>

Как установить ограничение и вернуть запрос 400 Bab?

Я следую этой статье:http://www.binaryintellect.net/articles/612cf2d1-5b3d-40eb-a5ff-924005955a62.aspx но мне нужно вернуть 400, а у меня нет web.config

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