Приложение завершено без чтения всего тела запроса, ошибка в Kestrel, .NET Core с NGiNX

У меня есть конечная точка api someroute / {someid}, которая принимает сообщение multipart / octet, чтобы я мог принимать несколько файлов.

Я использую .NET Cores MultipartReader для асинхронного чтения файлов.

На моем локальном компьютере, когда я тестирую эту загрузку, все работает отлично. На моем локальном компьютере, когда я запускаю его через наш прокси NGiNX для Kestrel в .NET Core, он по-прежнему отлично работает. Однако, когда я развертываю его в контейнере Docker в нашей среде Linux, он терпит неудачу с сообщением «Приложение завершено без чтения всего тела запроса».

Я установил промежуточное ПО для ведения журнала запросов, и кажется, что тело сообщения попадает в Kestrel через NGiNX, но ни один код в моем маршруте не вызывается.

Опять же, это работает локально на моей машине, локально с прокси-сервером NGiNX перед ним.

Любые идеи были бы полезны.


person James Scott    schedule 16.01.2019    source источник
comment
Вам следует создать минимальный воспроизводимый пример и включить этот код в свой вопрос.   -  person mason    schedule 16.01.2019


Ответы (1)


Хорошо, разобрался для тех, кто может застрять с этой ошибкой. В конце концов, это не имело ничего общего с моей конфигурацией NGiNX или докера. В своем конструкторе для своего контроллера я читал значение конфигурации, которого не существовало. Это вызвало исключение, из-за которого мой метод никогда не запускался.

Таким образом, если вы столкнулись с тем, что «Приложение завершено без чтения всего тела запроса ...», вы можете проверить свои конструкторы на наличие проблем.

person James Scott    schedule 21.01.2019