Невозможно отправить файлы размером более 4 МБ в веб-API [дубликат]

Невозможно отправить файлы размером более 4 МБ в веб-API [дубликат]
На чтение
11 мин.
Просмотров
24
Дата обновления
11.11.2024

Пока я отправляю более 4 МБ в свой веб-API, он выдает ошибку 404 (не найден) или, если я использую ([EnableCors (origins: «http:// localhost: 61365 «, заголовки:» «, методы:» «)]) запрос cors выдает ошибку, такую ​​как ошибка домена с перекрестным происхождением. Ниже мой код

  открытый класс UploaderController: ApiController {[HttpPost] public void UploadFile () {if (HttpContext.Current.Request.Files.AllKeys.Any ()) { //Получить загруженное изображение из коллекции файлов var httpPostedFile = HttpContext.Current.Request.Files ["UploadedImage"];  if (httpPostedFile! = null) {//Проверить загруженное изображение (необязательно)//Получить полный путь к файлу var fileSavePath = Path.Combine (HttpContext.Current.Server.MapPath ("~/UploadedFiles"), httpPostedFile.FileName)  ; //Сохраняем загруженный файл в папку «UploadedFiles» httpPostedFile.SaveAs (fileSavePath);  }}}} ** WebAPPCode **             Выберите файл (ы) для загрузки:   
$ (document) .ready (function () {$ ("# btnSubmit"). click (function (evt) {var files = $ ("# file1"). get (0) .files; if (files.length> 0) {var data = new FormData (); for (fileCount = 0; fileCount

 
Asp.net имеет ограничение на максимальную длину запроса. Вы это проверили? Увеличьте значение параметра
      

                  

                  

                  

Загрузка файлов размером более ~ 4 МБ приводит к ошибке «Соединение было сброшено»


На двух наших серверах у нас есть установка Ubuntu LAMP с разработанным кодом PHP чтобы разрешить загрузку больших изображений и аудио. У одного из наших клиентов возникла проблема, когда он не может загружать файлы размером более ~ 4 МБ с любого компьютера в своем офисе. Они получают сообщение «Соединение было сброшено» в FireFox, а в Chrome - «Ошибка 101 (net :: ERR_CONNECTION_RESET): Неизвестная ошибка.. «В Chrome я могу наблюдать за процентом загрузки и видеть, что загрузка завершается с ошибкой примерно в то время, когда достигается ~ 4 МБ (53%) для файла размером 7,79 МБ.
Это не проблема скорости, поскольку я успешно загруженные файлы из более медленных сетей.
Apache не возвращает ошибок в журналах и записывает начало сообщения в журнал доступа.
PHP.ini настроен на разрешение файлов размером до 500 МБ, и у нас есть другие клиенты, которые делают это без проблем. Я также увеличил таймауты сценариев PHP.
Я тестировал загрузку из ряда других местоположения на серверы без ошибок; и я также протестировал загрузку из местоположения клиентов в другие службы, также без ошибок.
Я действительно в растерянности, я не могу сказать, это ошибка сервера, клиент, и я надеюсь, что кто-то может знать что-то, что я могу использовать для тестирования, или, возможно, параметр, который я мог пропустить.







Есть ли брандмауэр/ IPS между ними? У нас была именно эта проблема, когда определенная часть файла давала ложное срабатывание на нашем IPS, вызывая всевозможные падения и зависания при доступе к сайту.


                  

и ведется запись начало публикации в журнале доступа

Нет - apache только когда-либо регистрирует завершение запроса в access_log (если у вас нет чего-то вроде mod_security, которое можно явно настроить для публикации журнал о подаче). Это скорее подразумевает, что некоторые из ваших утверждений тоже могут быть неверными.

PHP.ini настроен на разрешение файлов размером до 500 МБ, и у нас есть другие клиенты, которые делают это без проблем. Я также увеличил таймауты скриптов PHP.

Что такое конфигурация apache? (в частности, LimitRequestBody, LimitRequestFieldsize, TimeOut) Какая версия apache?

У одного из наших клиентов возникла проблема ... с любого компьютера в своем офисе ... успешно загруженные файлы из более медленных сетей. ... 500 МБ, и у нас есть другие клиенты, которые делают это без проблем

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

1


                  

                  

Вы проверили место, где хранятся текущие загрузки? ? /tmp или иначе?

У вас осталось больше 4 МБ свободного места? dmesg или журнал системных ошибок, дающий какие-либо подсказки?

1



0 Комментариев
Комментариев на модерации: 0
Оставьте комментарий