| 
    
            
         
         | 
    
  | 
Web-сервис. Ошибка 400 | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        1CNachalo    
     12.12.20 
            ✎
    21:21 
 | 
         
        Есть веб-сервис и общая команда. В общей команде код:
 
        Попытка ВСОпределение = Новый WSОпределения("http://192.168.___.__/t10/ws/OD.1cws?wsdl";); //#1 ВСервер = ВСОпределение.Сервисы.Получить("OD","OD"); ВТочкаВхода = ВСервер.ТочкиПодключения.Получить("ODSoap"); ВТОперация = ВТочкаВхода.Интерфейс.Операции.Получить("Sinhron"); Данные = Новый ХранилищеЗначения("Некие данные",Новый СжатиеДанных(9)); ДанныеXDTO = ВСОпределение.ФабрикаXDTO.Создать(ВТОперация.Параметры.Получить("Dan").Тип,Данные); ВСПрокси = Новый WSПрокси(ВСОпределение,"OD","OD","ODSoap"); Ответ = ВСПрокси.Синхронизация(ДанныеXDTO); Возврат Истина; Исключение Сообщить(ОписаниеОшибки()); Возврат Ложь; КонецПопытки; При нажатии на кнопку ВыполнитьСинхронизацию сначала было все хорошо, т.е. выполнение шло по ветке Попытка, до Ответ доходило точно, в ветку Исключение выполнение не переходило. Но затем, не понятно почему, при очередном тестировании кнопки с общей командой, сразу после прохождения строки кода #1 выполнение стало переходить к Исключению и в результате — ошибка (указывает именно на эту строку кода (выше) и код ошибки 400). (1с и Apache2.2 переустановил -- не помогло) При этом базу в браузере вижу, xml-файл тоже. ———————————— Примерно в момент возникновения этой ошибки началось следующее: даже если база нигде не открыта (ни в браузере, ни на ПК), выдается сообщение: “Достигнуто предельное количество подключений к ИБ”. Чтобы выходить из этой ситуации приходится часто чистить кэш и останавливать сервер. Что это может быть? Как исправить?  | 
|||
| 
    1
    
        SuperMario    
     12.12.20 
            ✎
    21:43 
 | 
         
        Старо как Мир - это код ответа HTTP, который означает, что сервер не смог обработать запрос)
 
        Залезьте каким-нить SOAPUI по ссылке "http://192.168.___.__/t10/ws/OD.1cws?wsdl" (или вставьте в браузер) Что в ответ?  | 
|||
| 
    2
    
        1CNachalo    
     12.12.20 
            ✎
    21:54 
 | 
         
        В ответ в браузере xml-схема.     
         | 
|||
| 
    3
    
        SuperMario    
     12.12.20 
            ✎
    22:35 
 | 
         
        (2) сори. Не дочитал полностью (0)     
         | 
|||
| 
    4
    
        1CNachalo    
     13.12.20 
            ✎
    13:14 
 | 
         
        Вбил неверный адрес http://192.168.___.__/t10/ws/OD?wsdl
 
        Т.е. не OD.1cws?wsd, а OD?wsd -- всё равно дает xml-схему. Это как вообще? Может ошибка связана как-то с этим?  | 
|||
| 
    5
    
        acht    
     13.12.20 
            ✎
    14:08 
 | 
         
        Приведи полный текст ошибки, которое выбрасывает исключение.
 
        Вангую, что у тебя учебная платформа и в пуле застревает твой же предыдущий сеанс.  | 
|||
| 
    6
    
        1CNachalo    
     13.12.20 
            ✎
    16:02 
 | 
         
        (5) Платформа учебная. Да, есть ощущение, что действительно застревает предыдущий сеанс. Но что с этим делать?
 
        ---------- {ОбщаяКоманда.ВыполнитьСинхронизацию.МодульКоманды(15)}:Ошибка при вызове конструктора (WSОпределения): при создании описания сервиса произошла ошибка URL: http://192.168.___.__/t10/ws/OD.1cws?wsdl Код ответа сервера: 400  | 
|||
| 
    7
    
        acht    
     13.12.20 
            ✎
    20:28 
 | 
         
        (6) В файле default.vrd установить размер пула в 1 и время жизни соединения в пула во что нибудь минимальное.     
         | 
|||
| 
    8
    
        SuperMario    
     13.12.20 
            ✎
    22:31 
 | 
         
        Припоминаю, у меня подобное было  когда-то с базовой БП 3.0. 
 
        Она локально/однопользовательская. Начались проблемы с работой через WEB, когда там пользователь работает. Был уверен, что WEB/HTTP сервисы не занимают клиентскую лицензию. Но практика показала обратное. У учебной версии то же самое: "количество одновременных сеансов работы с информационной базой ограничено одним сеансом". Случайно никто в это время не работает в базе (http://192.168.___.__/t10) когда соединение поднимается? Вот что пишет: https://forum.infostart.ru/forum9/topic128169/  | 
|||
| 
    9
    
        seevkik    
     14.12.20 
            ✎
    04:05 
 | 
         
        (8) Они занимают лицензию во время выполнения запроса     
         | 
|||
| 
    10
    
        1CNachalo    
     14.12.20 
            ✎
    08:36 
 | 
         
        (7) Т.е в файле изначально 2 таких фрагмента:
 
        <> poolSize="10" poolTimeout="5"/> </> Исправляю в обоих на <> poolSize="1" poolTimeout="1"/> </> Пока дает ту же ошибку.  | 
|||
| 
    11
    
        1CNachalo    
     14.12.20 
            ✎
    08:38 
 | 
         
        (8) Случайно никто в это время  не работает в  базе (http://192.168.___.__/t10) когда соединение поднимается?
 
        ------------------------------ Не, я ж тут вообще один, сижу, тренируюсь, застрял.  | 
|||
| 
    12
    
        1CNachalo    
     14.12.20 
            ✎
    08:41 
 | 
         
        (9) Что именно занимает лицензию?
 
        И как это исправить? Как-то работало до определенного момента, переходило дальше по функции, ошибку не давало. Потом резко -- ошибка 400.  | 
|||
| 
    13
    
        acht    
     14.12.20 
            ✎
    08:45 
 | 
         
        (10) > изначально 2 таких фрагмента
 
        Там больше двух. В standardOdata, в ws, в httpServices и в pool. В последнем оно size и maxAge, а не то, что ты поставил  | 
|||
| 
    14
    
        1CNachalo    
     14.12.20 
            ✎
    12:56 
 | 
         
        (13) Не нахожу. У меня вот так:
 
        <?xml version="1.0" encoding="UTF-8"?> //1 <point xmlns="http://v8.1c.ru/8.2/virtual-resource-system" //2 xmlns:xs="http://www.w3.org/2001/XMLSchema"//3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"//4 base="/t10"//5 ib="File="D:\1C\тест\кр6";">//6 <debug enable="true"//7 protocol="http"//8 url="192.168.___._"/>//9 <httpServices publishByDefault="false"/>//10 <standardOdata enable="true"//11 reuseSessions="autouse"//12 sessionMaxAge="1"//13 было 20 poolSize="1" //14 было 10 poolTimeout="1"/>//15 было 5 <analytics enable="true"/>//16 <ws>//17 <point name="OD"//18 alias="OD.1cws"//19 enable="true"//20 reuseSessions="autouse"//21 sessionMaxAge="1" //22 было 20 poolSize="1" //23 было 10 poolTimeout="1"/> //24 было 5 </ws>//25 </point>//26 Что нужно исправить? Ошибку пока выдает ту же  | 
|||
| 
    15
    
        acht    
     14.12.20 
            ✎
    13:09 
 | 
||||
| 
    16
    
        1CNachalo    
     14.12.20 
            ✎
    18:27 
 | 
         
        (15) пример из статьи
 
        <pool size="50" maxAge="10" attempts="2" attepmtTimeout="1" waitTimeout="1"/> ставлю в standardOdata, в ws, в httpServices и в pool. Получаю так <?xml version="1.0" encoding="UTF-8"?> <point xmlns="http://v8.1c.ru/8.2/virtual-resource-system" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" base="/fm" ib="File="D:\1C\тест\WebSer_активныеСистемы";"> <debug enable="true" protocol="http" url="127.0.0.1"/> <ws enable="false" poolsize="5" maxAge="1" attempts="2" attepmtTimeout="1" waitTimeout="1"/> <httpServices publishByDefault="false" poolsize="5" maxAge="1" attempts="2" attepmtTimeout="1" waitTimeout="1"/> <standardOdata enable="true" reuseSessions="autouse" sessionMaxAge="2" poolSize="1" poolTimeout="5"/> <analytics enable="true"/> </point>  | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |