Azure Web App возвращает двоичный файл, «измененный» с неправильным размером - PullRequest
0 голосов
/ 26 апреля 2019

У меня есть веб-приложение Azure, которое возвращает двоичный файл с помощью FileStreamResult. Работает нормально ...

FileStreamResult fsr = File(blobStream, System.Net.Mime.MediaTypeNames.Application.Octet, "testfile.bin");
return fsr;

Я скопировал этот код в другое веб-приложение, возвращая точно такой же элемент BLOB-объекта, и он возвращает «поврежденный» файл, который почти в 2 раза больше (65 КБ против 117 КБ). Оба приложения используют одну и ту же версию .Net, одну и ту же учетную запись Azure, одну и ту же учетную запись хранения Azure, заголовки ответов одинаковы ... но что-то должно отличаться!

Обновление: FileStreamResult имеет правильные данные / размер в буфере. Если я скопирую данные из FileStream (до возвращения), все в порядке. Таким образом, FileStreamResult является правильным; проблема возникает, когда генерируется ответ. Что-то с тем, как FileStreamResult конвертируется. Я также пробовал ActionResult, та же проблема.

Обновление 2: все еще не могу понять это, но ... он заменяет символы не-UTF-8 на символы замены EF BF BD Unicode. Я не уверен почему. Я думал, что тип содержимого application / octet-stream будет указывать на то, что данные не интерпретируются. Также не могу понять, почему одно веб-приложение делает это, а другое - нет.

Ответы [ 2 ]

0 голосов
/ 30 апреля 2019

Наконец, успех ... оказывается, что на базовом контроллере был принудительный атрибут ActionFilterAttribute.

0 голосов
/ 29 апреля 2019

Вы можете обновить пакет Swashbuckle.AspNetCore до последней версии 4.0.1.

Вот похожая проблема , к которой вы можете обратиться.

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