Как исправить ошибку «Отказано в доступе» (Error 5) при публикации 1С через веб-сервер IIS?

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

При настройке публикации информационной базы 1С:Предприятие на веб-сервере IIS (Internet Information Services) системные администраторы часто сталкиваются с неприятным «глюком». Тонкий клиент при попытке входа выдает критическую ошибку: «Ошибка доступа к файлу... 5(0x00000005): Отказано в доступе». Особенно странным кажется то, что после нажатия кнопки «Перезапустить» система может войти в нормальный режим работы, однако проблема возвращается снова. В этой статье мы подробно разберем, почему возникает эта ошибка и как настроить сервер так, чтобы работа была стабильной.

Выясняем причину возникновения ошибки доступа

Прежде всего, проанализируем ситуацию. Ошибка с кодом 5 в операционной системе Windows однозначно указывает на нехватку прав доступа файловой системы (NTFS) к определенному объекту. Когда мы запускаем 1С через веб-сервер, исполнителем процесса выступает не текущий пользователь Windows, а специальная учетная запись, под которой работает веб-сервер или пул приложений IIS.

Обратите внимание на путь, указанный в ошибке: часто система ссылается на C:\Documents and Settings\Default User или C:\Windows\System32\config\systemprofile. Это происходит потому, что веб-сервер пытается инициализировать программную среду 1С, но не находит полноценного профиля пользователя и обращается к системным папкам «по умолчанию». Разберем пошагово, как это исправить.

Шаг 1. Настройка прав доступа для сервисных учетных записей

Рассмотрим основной метод решения — предоставление необходимых прав группам пользователей, от имени которых работает IIS. В зависимости от версии вашей операционной системы (Windows Server 2003 или современные версии типа Windows 10/2019), названия групп будут различаться.

  1. Для Windows Server 2003 (IIS 6): Найдите локальную группу IIS_WPG и пользователя IUSR_ServerName. Им необходимо дать права на чтение и выполнение, а также на запись в каталоги, где хранятся временные файлы 1С.
  2. Для современных систем (IIS 7 и выше): Здесь используются группы IIS_IUSRS и специальный встроенный аккаунт IUSR.

Проанализируем, на какие именно папки нужно дать права «Изменение» (Modify):

Шаг 2. Настройка профиля пользователя в пуле приложений

Выясним, почему 1С пытается обращаться к папке Default User. В настройках IIS существует параметр, который управляет созданием профиля для рабочего процесса. Если этот параметр выключен, 1С не может корректно определить пути к своим папкам AppData.

Выполним следующие действия в консоли управления IIS:

  1. Откройте «Пулы приложений» (Application Pools).
  2. Выберите пул, который обслуживает вашу публикацию 1С (обычно это DefaultAppPool или пул с именем вашей базы).
  3. Нажмите «Дополнительные параметры» (Advanced Settings).
  4. Найдите раздел «Модель процесса» (Process Model) и параметр «Загрузить профиль пользователя» (Load User Profile).
  5. Установите значение в True.

После этого IIS создаст локальную папку профиля для учетной записи пула, и ошибка обращения к Default User исчезнет.

Шаг 3. Обновление платформы 1С:Предприятие

Важным моментом, упомянутым в обсуждении, является версия используемой платформы. Разберем, почему это критично. В версиях платформы ниже 8.3.15 наблюдались определенные проблемы с блокировками файлов расширением isapi_1c8.dll. Временные файлы кэша могли блокироваться одним потоком, не давая доступа другому, что и вызывало ошибку 5 при первом обращении.

Мы рекомендуем использовать платформу версии 8.3.15.1830 или выше. В этих релизах разработчики существенно переработали механизм взаимодействия с веб-серверами, оптимизировали работу с временными файлами и исправили ошибки разграничения прав при создании новых сессий.

Шаг 4. Настройка разрядности приложений

Если вы используете 64-битную операционную систему, но публикуете 32-битную версию платформы 1С (или наоборот), может возникнуть конфликт библиотек. Проверим настройки пула приложений:

  1. В дополнительных параметрах пула приложений найдите пункт «Разрешить 32-разрядные приложения» (Enable 32-Bit Applications).
  2. Если ваша платформа 1С (библиотека wsap22.dll или isapi_1c8.dll) является 32-битной, установите True.
  3. Если вы используете полноценный 64-битный сервер 1С и соответствующие модули расширения веб-сервера, установите False.

Шаг 5. Проверка наследования прав и антивирусов

Рассмотрим ситуацию, когда права вроде бы даны, но ошибка сохраняется. Часто это связано с тем, что права на папку 1C заданы, но они не распространились на вложенные папки, которые создаются динамически.

Зайдите в свойства безопасности папки C:\ProgramData\1C, нажмите «Дополнительно» и выберите опцию «Заменить все записи разрешений дочернего объекта наследуемыми от этого объекта». Это принудительно обновит права на все вложенные элементы кэша.

Также не забудем про влияние антивирусного ПО. Проанализируем логи антивируса: если он блокирует создание файлов в AppData или Temp для процессов w3wp.exe (процесс IIS), его необходимо настроить. Добавьте в исключения:

Резюме

Подводя итог, можно сказать, что решение проблемы «Отказано в доступе» при работе 1С через веб-сервер заключается в комплексной настройке окружения. Совместное использование правильных прав доступа для групп IIS_IUSRS, включение загрузки профиля пользователя в настройках пула IIS и использование актуальной версии платформы 8.3 гарантируют стабильную работу системы без необходимости постоянных перезапусков.

← На главную