Как исправить ошибку доступа к папке Default User (0x00000005) при работе 1С через IIS

Системный администратор IT и автоматизация бизнеса
← На главную

При публикации баз данных платформы «1С:Предприятие» на веб-сервере IIS под управлением операционных систем Windows Server администраторы часто сталкиваются с неприятной системной ошибкой. При попытке пользователей подключиться к базе через тонкий клиент или веб-клиент система выдает критический сбой: «Ошибка доступа к файлу 'C:\Documents and Settings\Default User\Local Settings\Application Data\1C'. 5(0x00000005): Отказано в доступе.»

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

Выясняем причину: почему IIS обращается к профилю Default User?

Для того чтобы эффективно решить проблему, разберем внутреннюю логику работы связки веб-сервера IIS и платформы 1С. Когда клиент подключается к опубликованной базе данных, на стороне сервера управление передается рабочему процессу IIS — w3wp.exe. Этот процесс по умолчанию функционирует от имени служебных технологических учетных записей. В зависимости от версии Windows и настроек пула приложений это могут быть:

Эти служебные учетные записи не являются классическими интерактивными пользователями. Операционная система Windows не создает и не загружает для них полноценный пользовательский профиль при старте служб. Когда библиотека 1С, запущенная внутри процесса w3wp.exe, пытается инициализировать сессию, ей требуется место для записи временных файлов, кэша метаданных и логов. Платформа выполняет стандартный системный вызов для определения пути к папке локальных настроек (переменная среды %LOCALAPPDATA%).

Поскольку у сервисного пользователя IIS нет собственного загруженного профиля, операционная система перенаправляет этот запрос на системный шаблон профиля по умолчанию — Default User (или Default в более новых версиях ОС). Процесс 1С пытается создать подкаталог 1C по пути C:\Documents and Settings\Default User\Local Settings\Application Data\. Однако у служебных учетных записей веб-сервера по умолчанию нет прав на запись в этот защищенный системный каталог. В результате операционная система блокирует операцию, возвращая системную ошибку 5 (Access Denied / Отказано в доступе).

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

---

Способ 1. Включение скрытых папок и ручная настройка прав NTFS

Самый быстрый способ устранить проблему — вручную предоставить необходимые права на запись в каталог Default User. По умолчанию папка Default User является скрытой и системной, поэтому её нельзя увидеть в обычном проводнике без предварительной настройки.

Рассмотрим по шагам процесс отображения скрытых папок и настройки прав на Windows Server 2003:

  1. Откроем любой проводник (например, «Мой компьютер»).
  2. В верхнем меню перейдем в пункт «Сервис» (Tools) и выберем «Свойства папки» (Folder Options).
  3. Перейдем на вкладку «Вид» (View).
  4. В списке дополнительных параметров найдем раздел «Скрытые файлы и папки» и установим переключатель в положение «Показывать скрытые файлы и папки».
  5. Снимем флажок с пункта «Скрывать защищенные системные файлы» (рекомендуется) и нажмем кнопку «ОК» для сохранения изменений.

Если вы работаете в более новых версиях Windows Server, аналогичную операцию можно выполнить через Панель управления или вкладку «Вид» в ленте проводника Windows.

После того как папки стали видимыми, перейдем к настройке прав доступа:

  1. Перейдем по пути: C:\Documents and Settings\Default User\Local Settings\Application Data\ (в современных ОС путь будет выглядеть так: C:\Users\Default\AppData\Local\).
  2. Если внутри этой директории отсутствует папка с именем 1C, создадим её вручную.
  3. Нажмем правой кнопкой мыши на созданную папку 1C и выберем «Свойства».
  4. Перейдем на вкладку «Безопасность» (Security).
  5. Нажмем кнопку «Добавить» и введем имя учетной записи, от имени которой работает ваш веб-сервер. Рекомендуется добавить группу IIS_WPG, а также пользователей Network Service и IUSR.
  6. Для каждой из добавленных записей в колонке «Разрешить» установим флажок напротив пункта «Полный доступ» (Full Control) или как минимум права на «Запись», «Изменение» и «Чтение».
  7. Нажмем кнопку «Применить», а затем «ОК».

Для быстрой установки прав через командную строку (консоль CMD запущенная от имени Администратора) мы можем применить утилиту cacls (для старых систем) или icacls (для современных систем). Рассмотрим пример скрипта автонастройки прав:


cacls "C:\Documents and Settings\Default User\Local Settings\Application Data\1C" /E /T /G "NT AUTHORITY\NETWORK SERVICE":F
cacls "C:\Documents and Settings\Default User\Local Settings\Application Data\1C" /E /T /G "IIS_WPG":C
cacls "C:\Documents and Settings\Default User\Local Settings\Application Data\1C" /E /T /G "IUSR":C

---

Способ 2. Настройка пула приложений IIS под выделенным пользователем

Использование встроенных системных учетных записей (таких как Network Service) часто создает бреши в безопасности сервера, поскольку предоставление им полных прав на системные каталоги нежелательно. Более безопасным и архитектурно правильным решением является запуск пула приложений веб-сервера под управлением выделенной локальной или доменной учетной записи Windows, у которой будет собственный полноценный профиль.

Разберем этот процесс по шагам:

  1. Создадим нового пользователя в операционной системе Windows Server (например, с именем usr_1c_web) и зададим ему сложный, надежный пароль.
  2. Добавим созданного пользователя в локальную группу безопасности IIS_WPG (на Windows Server 2003) или в группу IIS_IUSRS (на более современных ОС). Это необходимо для того, чтобы у пользователя были права на запуск рабочих процессов IIS.
  3. Критически важный шаг: выполним первый интерактивный вход в систему на сервере (например, через службу удаленных рабочих столов RDP) под созданной учетной записью usr_1c_web. При первом входе операционная система автоматически создаст для этого пользователя полноценный личный профиль на диске C:\ (например, C:\Documents and Settings\usr_1c_web\ или C:\Users\usr_1c_web\) со всеми служебными подпапками настроек.
  4. Выйдем из сеанса пользователя usr_1c_web и вернемся под учетную запись администратора.
  5. Предоставим пользователю usr_1c_web полные права NTFS на каталог с файловой базой данных 1С (если база файловая), а также права на чтение и выполнение для каталога установки платформы bin (обычно находящегося по пути C:\Program Files\1cv8\).
  6. Откроем Диспетчер служб IIS.
  7. Перейдем в раздел «Пулы приложений» (Application Pools).
  8. Найдем пул приложений, на котором опубликована ваша база 1С (по умолчанию это DefaultAppPool), и откроем его свойства.
  9. На вкладке «Удостоверение» (Identity) переключим настройку с предопределенной системной учетной записи на «Особая» (Configurable), укажем имя нашего созданного пользователя usr_1c_web и введем его пароль.
  10. Перезапустим службу IIS для применения настроек конфигурации.

После выполнения этих шагов рабочий процесс 1С будет обращаться к папке Application Data внутри личного профиля пользователя usr_1c_web, доступ к которому гарантирован правами владельца папки. Это полностью исключит конфликты с каталогом Default User.

---

Способ 3. Активация параметра «Загружать профиль пользователя» (для современных ОС)

Если в будущем вы планируете обновить операционную систему сервера до современных версий (Windows Server 2008, 2012, 2016, 2019, 2022) с установленным веб-сервером IIS версии 7.0 и выше, то решить данную проблему можно штатным переключателем в дополнительных свойствах пула приложений.

Проанализируем этот функционал. В современных версиях IIS по умолчанию для пулов приложений отключена автоматическая загрузка профиля пользователя. Это сделано для экономии ресурсов памяти и ускорения запуска пулов. Однако для стабильной работы платформы 1С загрузка профиля обязательна.

Для включения этого параметра выполним следующие действия:

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

При активации этого флага IIS принудительно создаст и загрузит изолированный профиль для виртуального пользователя пула приложений в папке C:\Users\, предоставив процессу легитимный и безопасный доступ к папке временных файлов и кэша, избавив систему от необходимости обращаться к шаблону Default User.

---

Дополнительная рекомендация: Проверка прав на папку Temp

Параллельно с решением проблемы доступа к папке Default User настоятельно рекомендуем проверить права на системную временную папку сервера. Платформа 1С при обработке запросов от веб-клиентов активно использует общую директорию C:\Windows\Temp (или C:\WINNT\Temp на старых версиях ОС) для хранения сессионных кэшей.

Убедимся, что у созданного вами пользователя пула приложений (или у стандартной группы IIS_WPG / IIS_IUSRS) есть права на чтение, запись и удаление файлов в этой папке. Отсутствие прав на системную директорию Temp может вызывать схожие плавающие ошибки доступа в процессе работы пользователей с базой 1С.

← На главную