При работе с базами 1С, опубликованными на веб-сервере IIS (Internet Information Services), системные администраторы часто сталкиваются с внезапными завершениями сеансов и ошибками вида «Недостаточно свободной памяти». Особенно остро эта проблема проявляется для файловых баз «1С:Бухгалтерия 3.0», размер которых превышает 2-3 ГБ, а количество пользователей достигает 10 и более. В этой статье мы подробно разберем причины возникновения таких ошибок, проанализируем системные логи и найдем способы стабилизации работы системы.
Рассмотрим ситуацию, когда 1С выдает ошибку, а в системном журнале Windows (Event Viewer) фиксируются события с кодами 1000 (Application Error) и 5011 (WAS). Проанализируем типичный текст ошибки из журнала событий:
Имя сбойного приложения: w3wp.exe, путь: C:\WINDOWS\SysWOW64\inetsrv\w3wp.exe
Имя сбойного модуля: KERNELBASE.dll
Код исключения: 0xe06d7363
Обратим внимание на путь к исполняемому файлу. Нахождение процесса w3wp.exe в папке SysWOW64 однозначно указывает на то, что пул приложений IIS запущен в 32-разрядном режиме. Это критический момент: 32-битный процесс в Windows не может адресовать более 2 ГБ (в редких случаях 4 ГБ) оперативной памяти. Для современных конфигураций на управляемых формах (таких как БП 3.0) этого объема катастрофически мало, особенно когда через один процесс работают несколько пользователей с тяжелыми отчетами.
Выясним причину падения: когда потребление памяти процессом w3wp.exe приближается к пределу, он аварийно завершается, что приводит к обрыву всех активных сеансов пользователей. Служба активации Windows (WAS) фиксирует это как ошибку связи с процессом (Event ID 5011).
Если серверная операционная система 64-битная, самым эффективным решением будет использование 64-разрядной версии расширения веб-сервера 1С. Разберем по шагам, как это настроить:
DefaultAppPool).False.Важный нюанс: Многие опасаются, что переход серверной части на 64 бита нарушит работу торгового оборудования (касс Атол, Штрих-М). Проанализируем этот момент: при работе через тонкий клиент веб-сервер отвечает только за передачу данных. Драйвер кассы запускается на стороне клиентского компьютера. Таким образом, на сервере может работать 64-битный IIS, а на рабочем месте кассира — 32-битный тонкий клиент 1С с соответствующими драйверами. Это полностью рабочая и стабильная схема.
Для файловых баз, которые склонны к утечкам памяти или «раздуванию» кэша в процессе работы, полезно настроить автоматическую переработку пула. Рассмотрим, как предотвратить критическое падение:
В настройках пула приложений перейдем в раздел «Вторичная переработка» (Recycling). Вместо стандартной перезагрузки раз в сутки, мы можем установить лимит памяти. Как только процесс w3wp.exe потребит, например, 3 ГБ памяти, IIS мягко создаст новый процесс для новых подключений, а старый завершит после доработки текущих запросов. Это позволяет избежать ошибки KERNELBASE.dll.
Иногда причиной ошибки 0xe06d7363 (которая является общим кодом исключения Visual C++) становятся поврежденные временные файлы. Разберем, где их искать на сервере:
Процесс w3wp.exe обычно работает под учетной записью ApplicationPoolIdentity или NetworkService. Посмотрим на пути, где могут скапливаться временные данные:
C:\Windows\Temp\ (общие временные файлы системы);C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp\ (если используется NetworkService);bin\conf в папке, куда была опубликована база (там находится файл default.vrd и могут создаваться логи).Рекомендуется остановить службу IIS (команда iisreset /stop), очистить содержимое указанных папок Temp и снова запустить сервер.
Поскольку база имеет объем 3.6 ГБ, что является внушительным размером для формата .1CD, нельзя исключать внутренние ошибки таблиц. Проанализируем ситуацию: если в базе есть поврежденные индексы, запросы к ним могут вызывать аномальный рост потребления памяти процессом веб-сервера.
Выполним стандартные процедуры обслуживания:
chdbfl.exe (находится в папке bin установленной платформы 1С) и проверим файл базы на наличие физических ошибок.Выясним, почему проблема могла появиться внезапно. Часто это связано с обновлениями безопасности Windows, которые сбрасывают права на папки. Проверьте, что у пользователя, от имени которого запущен пул приложений IIS (например, IIS AppPool\DefaultAppPool), есть полные права (Чтение/Запись/Изменение) на:
default.vrd).Отсутствие прав на создание временного файла 1С часто маскирует ошибку под «недостаток памяти», так как система не может выделить буфер для записи данных на диск.
Подводя итог, можно сказать, что для стабильной работы «1С:Бухгалтерии 3.0» через IIS необходимо уходить от 32-разрядных ограничений и обеспечивать своевременную очистку временных ресурсов сервера.