Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

http сервис не возвращает никакого ответа

http сервис не возвращает никакого ответа
Я
   Мистикан
 
07.05.19 - 00:40
mssql 2012, 8.3.8, IIS
При помещении данных более 15 мегабайт в тело ответа до клиента вообще не приходит никакой ответ, код сервиса выполняется полностью. В чем может быть проблема?
Код сервиса:
        ЗапросСтрока = Запрос.ПолучитьТелоКакСтроку();
        
        ЧтениеJSON = Новый ЧтениеJSON;
        ЧтениеJSON.УстановитьСтроку(ЗапросСтрока);
        ПараметрыЗапроса = ПрочитатьJSON(ЧтениеJSON,,"ДатаУспешнойЗагрузки",ФорматДатыJSON.ISO);
        
        Склад = Справочники.Склады.ПолучитьСсылку(Новый УникальныйИдентификатор(ПараметрыЗапроса.ИДСклада));
        Касса = Справочники.КассыККМ.ПолучитьСсылку(Новый УникальныйИдентификатор(ПараметрыЗапроса.ИДКассы));
        
        
        //+++    Чтобы инициировать полное обновление справочной информации для нужной кассы
        //         нужно очистить историю загрузки или указать пустую дату в последней записи успешной загрузки
        //        (для отладки или пригодится в процессе)
        ПолныйОбмен = Ложь;
        ДатаУспешногоОбменаФУД = Дата("00010101000000");    
        ПоследняяУспешнаяЗагрузка = РегистрыСведений.ИсторияОбменаФУД.СрезПоследних(,Новый Структура("НаправлениеОбмена,Склад,Касса,СтатусОбмена",Перечисления.НаправлениеОбмена.Загрузка,Склад,Касса,Перечисления.СтатусыОбменаФУД.Успешно));
        Если ПоследняяУспешнаяЗагрузка.Количество() <> 0 Тогда
            Если ПоследняяУспешнаяЗагрузка[0].ДатаУспешногоОбмена = Дата("00010101000000") Тогда
                ПолныйОбмен = Истина;    
            Иначе
                ДатаУспешногоОбменаФУД = ПоследняяУспешнаяЗагрузка[0].ДатаУспешногоОбмена;
            КонецЕсли;
        Иначе
            ПолныйОбмен = Истина;
            ДатаУспешногоОбменаФУД = Дата("00010101000000");
        КонецЕсли;
        //---
        Если ДатаУспешногоОбменаФУД = Дата("00010101000000") Тогда
            ДатаЗапроса = ДатаУспешногоОбменаФУД;
        Иначе
            ДатаЗапроса = ПараметрыЗапроса.ДатаУспешнойЗагрузки;
        КонецЕсли;
        
        
        Если ТипЗнч(ПараметрыЗапроса) = Тип("Структура") Тогда
            МассивНоменклатуры = ПолучитьМассивНоменклатуры(ПолныйОбмен,ДатаЗапроса);        
            МассивЦен = ПолучитьМассивЦен(ПолныйОбмен,Склад,ДатаЗапроса);
            МассивКассиров = ПолучитьМассивКассиров(ПолныйОбмен,Склад,ДатаЗапроса);
            МассивНастройкиГруппыФР = ПолучитьМассивНастройкиГруппыФР(ПолныйОбмен,Касса,ДатаЗапроса);
            СтруктураВыгрузки = Новый Структура("Номенклатура,Цены,Кассиры,НастройкиГруппыФР",МассивНоменклатуры,МассивЦен,МассивКассиров,МассивНастройкиГруппыФР);
            СтрокаJSON = ПолучитьСтрокуJSON(СтруктураВыгрузки);    
            Ответ = СтрокаJSON;
        Иначе
            Ответ = Строка(ТипЗнч(ПараметрыЗапроса));
        КонецЕсли;
        
        HTTPОтвет = Новый HTTPСервисОтвет(200);
        HTTPОтвет.УстановитьТелоИзСтроки(Ответ);
        
        мз = РегистрыСведений.ИсторияОбменаФУД.СоздатьМенеджерЗаписи();
        мз.Период = ТекущаяДата();
        мз.НаправлениеОбмена = Перечисления.НаправлениеОбмена.Загрузка;
        мз.Склад = Склад;
        мз.Касса = Касса;
        мз.СтатусОбмена = Перечисления.СтатусыОбменаФУД.Успешно;
        мз.ДатаУспешногоОбмена = ПараметрыЗапроса.ДатаУспешнойЗагрузки;
        мз.Записать(Истина);
    Исключение
        HTTPОтвет = Новый HTTPСервисОтвет(520);
        HTTPОтвет.УстановитьТелоИзСтроки(ОписаниеОшибки());
        
        мз = РегистрыСведений.ИсторияОбменаФУД.СоздатьМенеджерЗаписи();
        мз.Период = ТекущаяДата();
        мз.НаправлениеОбмена = Перечисления.НаправлениеОбмена.Загрузка;
        мз.Склад = Склад;
        мз.Касса = Касса;
        мз.СтатусОбмена = Перечисления.СтатусыОбменаФУД.Ошибка;
        мз.ДатаУспешногоОбмена = ПараметрыЗапроса.ДатаУспешнойЗагрузки;
        мз.Описание = ОписаниеОшибки();
        мз.Записать(Истина);
    КонецПопытки;
    Возврат HTTPОтвет;
 
 
   Fram
 
1 - 07.05.19 - 00:46
каким клиентом проверял? обычным браузером или постманом пробовал?
ну и 15Мб как то лишка для http запроса. разбить бы.
   Мистикан
 
2 - 07.05.19 - 00:49
(1) нет еще... на другом конце розница... как я понимаю IIS не пропускает... но я в нем нуб.
   palsergeich
 
3 - 07.05.19 - 00:52
(2) Есть настройка в ИИС максимальный размер запроса.
   palsergeich
 
4 - 07.05.19 - 00:53
   palsergeich
 
5 - 07.05.19 - 00:53
Увеличь - должно помочь
   Мистикан
 
6 - 07.05.19 - 00:55
увеличивал до 200мб пару раз прошло. потом опять вернулось на круги своя.
   palsergeich
 
7 - 07.05.19 - 00:56
(6) Ну дык может там больше 200 мб?
   Мистикан
 
8 - 07.05.19 - 00:56
тоже нагуглил эту статью
   Мистикан
 
9 - 07.05.19 - 00:56
(7) нет.. 39 мб не более.. но затыкается на 15+
   palsergeich
 
10 - 07.05.19 - 00:58
Пес знает, у нас сметы по пол гига одним HTTP запросом отправлялись.
Ты точно там где надо крутанул?
   palsergeich
 
11 - 07.05.19 - 00:58
(10) Ой не сметы, а конструкторская дока
   palsergeich
 
12 - 07.05.19 - 00:59
Там еще бывает не на ИИС, а на железке ограничение
   Мистикан
 
13 - 07.05.19 - 01:00
(10) да вроде да.. сейчас перепроверил.. оказывается 2gb стоит вообще
   Мистикан
 
14 - 07.05.19 - 01:00
(12) на железке?
   NorthWind
 
15 - 07.05.19 - 06:51
(0) судя по тому что я видел - не приняты такие объемы. Если надо возвращать большой массив данных, то обычно делают несколько запросов, а в качестве параметров указывают, с какого по какой элемент списка возвращать.
   Cyberhawk
 
16 - 07.05.19 - 08:27
Начиная где-то с 8.3.8 мультипарт работает из коробки, нужно лишь правильно заголовок "Content-Type" задать, ну и разделитель
   Мистикан
 
17 - 07.05.19 - 19:00
(16) ок спасибо за наводку.. поищу инфу
   Cyberhawk
 
18 - 07.05.19 - 19:06
(17) Даже в Зазеркалье кажись готовый пример был, коли ИТС не осилил

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.