Синхронизация через интернет (http) подключение проходит только со второго раза

Настроена синхронизация через интернет подключение. Базы файловые через веб-сервер. Пользователи регулярно обращаются с жалобой на то, что при попытке синхронизации выдается ошибка "отсутствует доступ в сеть интернет"


В журнале видим: Не удалось проверить доступность web-сервиса
(АдресБазы)/ws/Exchange_3_0_1_1?wsdl
по причине:
Ошибка работы с Интернет: Превышено время ожидания

При этом настроено все на вид правильно и при повторной синхронизации все нормально работает. Настроек синхронизации несколько и везде такое.

Причина оказалась:

Общий модуль "Общего назначения", функция "СоздатьWSПрокси". Написано следующее:

  1. Если ДелатьКонтрольныйВызов И Таймаут <> Неопределено И Таймаут > 20 Тогда
  2. ПараметрыПодключения.Таймаут = 7;
  3. WSПроксиPing = РегистрыСведений.КэшПрограммныхИнтерфейсов.ВнутренняяWSПрокси(ПараметрыПодключения);
  4. Попытка
  5. WSПроксиPing.Ping();
  6. Исключение
 

То есть для проверки доступности таймаут - 7 секунд. Но если речь идет о файловой базе и современных конфигурациях типа бухгалтерии, УНФ, зарплаты, и ее еще нет в памяти веб сервера (первый запуск после загрузки компьютера, перезапуска службы веб-сервера и т.п.), то первый запуск это никак не 7 секунд.(За 7 секунд из текущих конфигураций разве что УТ 10.3 запустится). Конечно же возникает ошибка.

Причем очень интересно сделано - если таймаут через параметры передан 19 секунд, так 19 и останется, а если передано 300 секунд, то будет 7.

Соответственно для избежания возникновения ошибки таймаут в этой процедуре надо увеличивать до разумного. Примечание: эта процедура ориентирована в т.ч. и на обычные веб-сервисы (не только публикации баз 1с, поэтому наиболее правильно делать это только для случая подключения к базе 1с.

Обновлено 16.05.2019 19:13
 
home search