Доброго времени суток! Помогите решить проблему: есть некий HTTP-сервис который настроен и работает, но ровно до тех пор пока объем возвращаемого файла меньше 1 мегабайта. Как только объем тела HTTPСервисОтвет превысит 1 мегабайт происходит следующее 1с завершает корректно процедуру возврата как будто данные ушли но клиент отправивший запрос так и висит в бесконечном ожидании ничего не получая. Клиент может быть любой хоть браузер хоть другая база результат всегда одинаковый.
HTTP-сервис опубликован на IIS 10.0 версия платформы 1с 8.3.20.1674 конфигурация в режиме совместимости Версия 8.3.10.
Стандартное ограничение на IIS не менялось и составляет 30 мегабайт.
Как только объем тела HTTPСервисОтвет превысит 1 мегабайт происходит следующее 1с завершает корректно процедуру возврата как будто данные ушли но клиент отправивший запрос так и висит в бесконечном ожидании ничего не получая.
Я бы для начала промониторил HTTP-трафик на сервере и на клиенте - то ли сервер ничего не отправляет, то ли клиент ничего не получает?
Или отправляет/получает, но не полностью весь объем, а частично - в пределах того же мегабайта.
Просто чтобы точно определиться - где собака порылась и куда копать.
Собака порылась где то в связке 1с Сервер - IIS, до клиента ничего не доходит. Провели эксперимент с той же версией 1с но база файловый вариант на той же машине где IIS все работает. Стоило только эту файловую базу запихнуть на сервер 1с ограничение вновь вернулось.
база файловый вариант на той же машине где IIS все работает
Значит, дело не в настройках IIS - они ведь в обоих случаях одни и те же?
Стоило только эту файловую базу запихнуть на сервер 1с ограничение вновь вернулось.
Тогда анализировать код 1С - где он может глючить в серверном варианте? Наугад, в качестве примера - разрядность платформы, ограничения на размер выделяемой памяти, место на диске для временных файлов и т.д.
Вплоть до того, что расставить по ходу формирования ответа команды сохранения данных в файлы и проверить - все формируется нормально? Часом, не обнуляется после 1Мб?
Это уже в порядке бреда, конечно, но у вас там бред и так сейчас происходит... :-)
Дело в том что все формируется и возвращается верно на уровне кода 1с. Беда происходит после того как сервер 1с завершил все операции и сеанс HTTP-сервиса завершился без ошибок. Далее мистика если тело отправленных данных больше 1мб то на клиент отправивший запрос ничего не приходит.
Именно в весе, проверено опытным путем тело размером 1024000 байт проходит спокойно, 1025000 уже нет. В заголовках использовал разные типы MIME с указанием размеров отправляемых данных все бестолку.
проверено опытным путем тело размером 1024000 байт проходит спокойно, 1025000 уже нет.
Только сейчас обратил внимание: 1 мегабайт - это 1048576 байт. То есть, 1025000 - это меньше 1 мегабайта, так что, по крайней мере, ограничение идет не по битности (1048576=2^20).
Или тело вместе с заголовками вылазит за 1048576? Проверить это может только автор.
(20)в моем случае разницы нет, ограничение действует на любые методы. Пока пришлось дробить ответы на части меньше мегабайта и собирать на другой стороне.
(22) Уж не знаю ваш ли совет помог, или проблема была решена другим способом но ограничение исчезло. Сейчас работает без ограничений даже если убрать явное указание каталога, поэтому не уверен что проблема была именно в этом.
(22) В какой-то момент повсеместно начались зависания данных в 1С, не было ошибки, на первый взгляд все отрабатывалось корректно (как hs, так и ws), но ответ не приходил. Первым делам подумали на IIS, за 2 дня испробовали все доступные на просторах инструкции - ничего не помогло. Рядом экспериментов выявили, что у ошибки есть паттерн, связанный с размером контента. И о чудо наткнулись на эту статью. Поставили галочку и 1С выздоровела) Все заработало. Спасибо огромное за совет, который помог!