Как исправить ошибку HTTP 404.0 (код 0x80070002) при публикации базы 1С на веб-сервере IIS?

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

Разберем ситуацию, с которой часто сталкиваются специалисты при публикации информационной базы 1С на веб-сервере IIS — для этого есть настройка обмена данными через веб-сервис. После настройки веб-сервера и выполнения публикации через конфигуратор база отказывается запускаться, а в браузере выдается ошибка: HTTP 404.0 - Not Found (Разыскиваемый вами ресурс был удален, было изменено его имя или он временно недоступен). При этом в деталях ошибки фигурирует модуль IIS Web Core, уведомление MapRequestHandler, обработчик 1cw и код ошибки 0x80070002.

Проанализируем по шагам все возможные причины этой проблемы и подробно рассмотрим методы её решения.

1. Запуск конфигуратора от имени Администратора

Выясним причину, по которой публикация вроде бы создается, но необходимые права и файлы не конфигурируются должным образом. Операционная система Windows имеет механизм UAC (User Account Control), который ограничивает права приложений, даже если пользователь является администратором системы.

Посмотрим на самое простое решение, которое решает проблему в большинстве случаев:

  1. Закройте запущенный конфигуратор 1С.
  2. Кликните правой кнопкой мыши по ярлыку платформы 1С:Предприятие.
  3. Выберите пункт Запуск от имени Администратора.
  4. Откройте нужную информационную базу в режиме Конфигуратора.
  5. Перейдите в меню Администрирование -> Публикация на веб-сервере и выполните публикацию заново.

Это действие позволяет платформе корректно внести изменения в системные каталоги inetpub и настройки самого веб-сервера IIS.

2. Настройка ограничений запроса для обработчика (Сопоставления обработчиков)

Если публикация от имени администратора не помогла, проверим параметры обработчика в IIS. Часто проблема кроется в том, что веб-сервер пытается найти физический файл или каталог там, где должен срабатывать виртуальный обработчик ISAPI.

Разберем по шагам, как это исправить:

  1. Откройте Диспетчер служб IIS.
  2. Выберите ваш сайт (или конкретное веб-приложение базы 1С) в дереве подключений слева.
  3. В центральной панели дважды кликните на Сопоставления обработчиков (Handler Mappings).
  4. Найдите в списке обработчик для 1С (обычно он называется 1cw, 1cws или имеет расширения *.1cws, *.1crs).
  5. Дважды кликните по нему, чтобы открыть окно редактирования.
  6. Нажмите кнопку Ограничения запроса... (Request Restrictions).
  7. Перейдите на вкладку Сопоставление (Mapping).
  8. Снимите галочку Вызывать обработчик только при сопоставлении запроса с: Файлом или каталогом (Invoke handler only if request is mapped to File or Directory).
  9. Сохраните изменения и перезапустите IIS.

После снятия этой галочки IIS перестанет искать физический файл по переданному URL и корректно передаст запрос библиотеке wsisapi.dll.

3. Устранение конфликта разрядности (32-bit и 64-bit)

Рассмотрим подробнее архитектурные нюансы. Несовпадение разрядности платформы 1С и настроек пула приложений IIS — классическая причина 404 ошибки. Если вы установили 32-разрядную платформу 1С на 64-разрядный Windows Server, IIS не сможет загрузить библиотеку.

  1. Откройте Диспетчер служб IIS и перейдите в раздел Пулы приложений (Application Pools).
  2. Выберите пул, к которому привязан ваш сайт с 1С (чаще всего это DefaultAppPool или специально созданный пул).
  3. В правой панели нажмите Дополнительные параметры (Advanced Settings).
  4. Найдите параметр Разрешить 32-разрядные приложения (Enable 32-bit Applications).
  5. Установите его значение в True, если платформа 1С 32-битная. Если вы используете 64-битную 1С, убедитесь, что параметр равен False, а пути в обработчиках ведут в папку bin 64-битной версии.

4. Проверка компонентов IIS и ограничений ISAPI

Проанализируем компоненты сервера. Для работы 1С требуются технологии ISAPI, которые в новых версиях IIS могут быть отключены по умолчанию.

  1. Откройте Включение или отключение компонентов Windows (или Server Manager для Windows Server).
  2. Разверните Службы IIS -> Службы Интернета -> Компоненты разработки приложений.
  3. Убедитесь, что установлены компоненты Расширения ISAPI и Фильтры ISAPI.
  4. В Диспетчере IIS встаньте на корень сервера (самый верхний уровень) и откройте Ограничения ISAPI и CGI (ISAPI and CGI Restrictions).
  5. Убедитесь, что там добавлена библиотека wsisapi.dll от вашей версии 1С, и для нее установлено состояние Разрешено.

5. Настройка прав доступа пользователей IIS

Особое внимание уделим правам доступа. Ошибка "файл не найден" (0x80070002) часто маскирует под собой банальную нехватку прав у процесса веб-сервера на чтение файлов 1С.

  1. Перейдите в каталог установки платформы 1С (например, C:\Program Files\1cv8\8.3.x.x\bin\).
  2. Откройте Свойства папки -> Безопасность.
  3. Добавьте пользователей IUSR и группу IIS_IUSRS (или пользователя пула IIS AppPool\ИмяПула) и дайте им права на Чтение и выполнение.
  4. Проделайте ту же операцию для папки каталога публикации (где лежит default.vrd) и для каталога с самой информационной базой (если база файловая), дав этим пользователям права на Изменение (Modify).

6. Регистрация MIME-типов и проверка файла публикации

Посмотрим на настройки MIME-типов и конфигурационные файлы. Если IIS не знает расширений файлов веб-сервисов 1С, он будет отвергать запросы к ним — для этого есть обработка настройки веб-сервисов для обмена.

  1. В диспетчере IIS откройте Типы MIME (MIME Types).
  2. Добавьте расширение .1cws и .1crs с типом MIME text/xml или application/octet-stream.

Кроме того, откройте сам файл default.vrd в текстовом редакторе и проверьте корректность пути к базе. Убедитесь, что путь к wsisapi.dll в настройках обработчика и версия платформы, которой опубликована база, совпадают. Рассинхронизация версий при обновлении платформы — частая проблема.

Выполнив все описанные выше шаги, обязательно перезапустите веб-сервер. Сделать это можно из командной строки, запущенной от имени администратора, командой:


iisreset

После этого публикация информационной базы 1С на IIS заработает корректно, и ошибка 404.0 с кодом 0x80070002 будет устранена.

← На главную