Почему при обращении к веб-сервису 1С возникает ошибка 404 или Сервис не найден и как это исправить

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При разработке и развертывании веб-сервисов (SOAP / WSDL) в среде 1С:Предприятие разработчики часто сталкиваются с ситуацией, когда на локальной базе сервис функционирует корректно, однако после переноса на рабочий веб-сервер (IIS или Apache) при попытке получить WSDL-схему либо добавить объект WSСсылка возникают ошибки: 404 Not Found, 500 Внутренняя ошибка сервера (Сервис не найден) или системное исключение Текущему соединению с информационной базой не назначен сеанс.

Разберем детально механизм возникновения этой проблемы и рассмотрим пошаговые методы ее гарантированного устранения.

Причины возникновения ошибок при публикации веб-сервисов

Проанализируем, почему веб-сервер и платформа 1С возвращают ошибки при обращении по адресу вида .../ws/ServiceName.1cws?wsdl:

  1. Рассинхронизация дескриптора публикации (файл default.vrd). При переименовании веб-сервиса, смене его псевдонима (алиаса) или повторной публикации через конфигуратор 1С не всегда удаляет старые записи из секции ws. В результате в файле остаются дублирующие или неактуальные узлы, ссылающиеся на несуществующие объекты метаданных.
  2. Кэширование настроек веб-сервером. Веб-серверы IIS и Apache кэшируют дескриптор виртуального приложения и модули расширения 1С (wsisapi.dll или wsap24.so). Если параметры изменились, веб-сервер может продолжать обрабатывать запросы по устаревшей схеме.
  3. Сбой инициализации сеанса. Ошибка Текущему соединению с информационной базой не назначен сеанс возникает, когда веб-расширение 1С передает запрос кластеру или файловой базе, но платформа не находит веб-сервис с запрошенным именем среди метаданных базы либо не может авторизовать пользователя.

Способ 1. Корректная перепубликация через Конфигуратор (очистка дескриптора)

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

Разберем действия по шагам:

  1. Откроем информационную базу в режиме Конфигуратор с правами администратора.
  2. Перейдем в главное меню: Администрирование → Публикация на веб-сервере...
  3. В открывшемся окне найдем список публикуемых веб-сервисов и снимем флажок с проблемного веб-сервиса (или со всех веб-сервисов).
  4. Нажмем кнопку Опубликовать. Это действие принудительно удалит устаревшие узлы и записи о веб-сервисе из конфигурационного файла default.vrd.
  5. Снова установим флажок напротив нужного веб-сервиса, проверим правильность указания имени файла публикации (алиаса с расширением .1cws) и нажмем кнопку Опубликовать повторно.

Такой цикл перезаписи гарантирует удаление «мусорных» тегов и формирует корректный дескриптор виртуального каталога.

Способ 2. Прямая правка файла default.vrd

Если доступ к конфигуратору ограничен или требуется проверить корректность параметров вручную, проанализируем структуру файла default.vrd, который находится в каталоге публикации веб-сервера.

Откроем default.vrd в любом текстовом редакторе и проверим секцию веб-сервисов. Корректная структура должна выглядеть следующим образом:


<?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="/office"
       ib="File=&quot;C:\Bases\Office&quot;;">
    <ws>
        <point name="WebPartner"
               alias="Partner.1cws"
               enable="true"/>
    </ws>
</point>

Проверим ключевые атрибуты узла point внутри секции ws:

  1. name — строгое имя объекта метаданных веб-сервиса из дерева конфигурации 1С.
  2. alias — относительный путь публикации (имя файла с расширением .1cws), по которому клиенты обращаются за WSDL-схемой.
  3. enable — признак доступности веб-сервиса, должен иметь значение true.
  4. Убедимся в отсутствии лишних узлов point со старыми или дублирующимися именами.

Способ 3. Перезапуск пула приложений и службы веб-сервера

После изменения дескриптора публикации необходимо сбросить кэш веб-сервера. Выполним перезапуск служб в зависимости от используемой платформы:

  1. Для Microsoft IIS: откроем командную строку от имени администратора и выполним команду iisreset либо выполним рециркуляцию (Recycle) соответствующего пула приложений в диспетчере IIS.
  2. Для Apache (Windows): перезапустим службу Apache2.4 через оснастку служб или команду httpd -k restart.
  3. Для Apache (Linux): выполним команду в терминале: sudo systemctl restart apache2 или sudo systemctl restart httpd.

Проверка работоспособности

Выясним, как проверить корректность работы сервиса после публикации:

  1. Откроем браузер в режиме инкогнито (для исключения влияния кэшированных заголовков авторизации).
  2. Перейдем по прямому адресу WSDL: http://адрес-сервера/имя-публикации/ws/ИмяФайла.1cws?wsdl.
  3. После успешной авторизации браузер должен отобразить XML-структуру схемы WSDL без сообщений об ошибках сеанса и статусов 404/500.
  4. В конфигураторе базы-клиента создадим объект WSСсылка и укажем полученный URL — импорт схемы должен пройти без сбоев.
← На главную