Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Проблема с публикацией http-сервиса на CENTOS7

Проблема с публикацией http-сервиса на CENTOS7
Я
   Rizhij_Nikitos
 
28.11.18 - 14:41
Доброго времени суток, уважаемые форумчане. Возникла проблема при публикации самописного http-сервиса для БП 3.0. Изначально сервис был написан и обкатан на локальной машине с виндой, все работало, публиковалось, доступ извне работал правильно. Развернули в ЦОДе, начались проблемы.


Входные данные:
1С: 8.3.10.2667 х64, БП 3.0.64.34, серверная БД на postgres 9.6.
Веб-сервер: Apache 2.4 x64
ОС: CENTOS7 в ЦОДе


Какие настройки выполнены и что пробовали:
Установлены расширения веб-сервера для 1С, х64, so для апача версии 2.4 лежит в папке с 1С.
У пользователя, под которым запускается апач и 1С есть доступ на чтение и выполнение всех файлов в этой папке.
В .vrd схеме прописана авторизация под пользователем 1С, у которого есть полные права, а так же права на использование указанных http-сервисов. Пользователь заведен на латинице.
Открыты порты 80, 1540, 1560-1591. Белый IP.
В конфиге апача раскомментировано использование so для работы с ws, прописан алиас на виртуальное приложение.
Схема совпадает с нотацией, описанной на its.


Описание проблемы:

Обращаемся к сервису и получаем ошибку:
1C:Enterprise 8 application error:
The HTTP header contains invalid characters: [ Content-Length: 158]

Гугл результатов не дает, либо они не в кассу. Пробовали убирать авторизацию из vrd схемы, браузер запрашивает логин пароль. После ввода получаем ту же ошибку.

Есть ли у кого-то еще варианты куда копать и что можно сделать? Мы зашли в тупик.
 
 
   sergeyspb13
 
1 - 28.11.18 - 14:58
Так ошибка написана: The HTTP header contains invalid characters

смотри как настроен apache, мож utf-8 где-то не правильно прописан или логи смотреть надо, чего именно ему не нравится
   Rizhij_Nikitos
 
2 - 28.11.18 - 17:40
(1) В httpd.conf установлен AddDefaultCharset UTF-8
Есть еще какие-то настройки апача, которые отвечают за кодировку?

Прологировал ответ 1Ски - доступ к сервису есть, запрос доходит, обрабатывается 1Ской и возвращается http-ответ следующего содержания:
Заголовки:
Content-Type=application/json;charset=utf-8
Content-Length=95
Код состояния: 418
Строка ответа: {
"description": "В запросе отсутствует свойство: дата запроса, выполнение запроса прервано!"
}

Это ответ который формирую я своим сервисом. Все штатно. 1С передает управление апачу, после чего апач возвращает все ту же ошибку.

Что интересно, если 1С вываливается с необработанной ошибкой, например деление на 0 сделать, приходит стандартное 1Совское исключение для веб сервера в котором написана ошибка 500 и ОписаниеОшибки.

В логах апача в ошибках появляется запись с текстом нашего запроса и информацией:
HTTP/1.1 400 248 "-"
   mexanik_96
 
3 - 28.11.18 - 18:13
пришей хидеры по кодировке
   mexanik_96
 
4 - 28.11.18 - 18:15
+(3) 400 ошибка в синтаксисе(строке запроса)
   Garykom
 
5 - 28.11.18 - 18:30
Проблема не в " "?
   Rizhij_Nikitos
 
6 - 28.11.18 - 18:33
(3) HTTPОтвет.Заголовки["Content-Type"] = "application/json;charset=utf-8"
стоит

(4) синтаксис поправил, вернулся нормальный ответ в нормальном виде, но почему не работает ошибка - непонятно.
   Garykom
 
7 - 28.11.18 - 18:39
Можешь показать что в запросе и что в ответе?
   Rizhij_Nikitos
 
8 - 28.11.18 - 18:50
Мы победили. В общем на стороне 1С я не классифицировал ошибки и всегда в случае некорректного вопроса возвращал ошибку 418. На винде все было красиво и работало замечательно, а вот на линуксе если возвращать ошибку 418, вываливается какой то мусор. Типа проблема с заголовками. Хотя заголовки, кодировки, все в порядке. Возможно проблема в библиотеке wsap24.so, но это уже не наши проблемы. Поменяли код ошибки на 400 и все заработало.

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