Почему зависает веб-клиент 1С на IIS х64 и как решить проблему с запуском?

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

При настройке веб-доступа к информационным базам «1С:Предприятие» специалисты часто сталкиваются с ситуацией, когда 32-разрядная платформа работает корректно, а при переходе на 64-разрядный сервер 1С и 64-битный модуль расширения веб-сервера IIS окно «1С:Предприятие» бесконечно зависает в браузере ещё до появления формы авторизации.

Рассмотрим подробно причины возникновения этой проблемы и разберем проверенные способы её устранения.

Выясним причину зависания веб-клиента

Проанализируем механику работы веб-клиента при разворачивании на 64-разрядной архитектуре. Когда публикация выполняется с использованием 64-битного модуля wsisapi.dll, за обработку запросов отвечает рабочий процесс IIS w3wp.exe.

Главная причина зависания заключается в особенности поиска лицензий 64-разрядным веб-модулем 1С:

  1. В файловом режиме подсчетом и контролем лицензий занимается непосредственно модуль расширения веб-сервера.
  2. В клиент-серверном режиме выдачей лицензий управляет либо сервер «1С:Предприятия», либо модуль веб-сервера (если на стороне сервера 1С отключена опция раздачи лицензий).

Если модуль расширения запускается в 64-битном контексте службы IIS под ограниченной системной учетной записью (например, ApplicationPoolIdentity), он уходит в бесконечное ожидание при попытке найти сетевой ключ HASP через широковещательные UDP-запросы (Broadcast). Брандмауэр или сетевая подсистема Windows блокирует эти запросы для служебных процессов IIS, из-за чего окно браузера «зависает» до ввода логина и пароля.

Способ 1. Установка ключа защиты на сервер и настройка раздачи лицензий

Самое простое и эффективное решение — убедиться, что сервер «1С:Предприятия» берет на себя получение и раздачу лицензий пользователям веб-клиента.

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

  1. Подключим физический или программный ключ защиты непосредственно к серверу, где установлен сервер «1С:Предприятия».
  2. Откроем консоль администрирования кластера «1С:Предприятие».
  3. Найдем нужную информационную базу и откроем ее свойства.
  4. Убедимся, что параметр «Разрешить выдачу лицензий сервером 1С:Предприятия» установлен в значение Да.

При такой схеме модуль расширения IIS не пытается самостоятельно искать ключи в локальной сети, а запрашивает лицензию напрямую у службы 1С, что предотвращает зависание процесса.

Способ 2. Явное указание IP-адреса в файле nethasp.ini

Если веб-сервер должен самостоятельно обращаться к менеджеру лицензий HASP, необходимо отключить широковещательный поиск и жестко прописать IP-адрес сервера лицензирования.

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

  1. В каталоге платформы bin\conf (или bin) для 64-разрядной версии 1С создадим или отредактируем файл nethasp.ini.
  2. Запретим Broadcast и зададим прямой IP-адрес сервера с менеджером лицензий:

[NH_COMMON]
NH_IPX = Disabled
NH_NETBIOS = Disabled
NH_TCPIP = Enabled

[NH_TCPIP]
NH_SERVER_ADDR = 192.168.x.x
NH_USE_BROADCAST = Disabled

После сохранения файла перезапустим службу веб-сервера IIS командой iisreset в командной строке от имени администратора.

Способ 3. Настройка пула приложений в Диспетчере IIS

Посмотрим на настройки пула приложений в IIS, от которых зависит правильность выполнения 64-битного модуля 1С.

  1. Откроем Диспетчер служб IIS и перейдем в раздел «Пулы приложений».
  2. Выберем пул, выделенный под публикацию базы 1С, и откроем «Дополнительные параметры».
  3. Убедимся, что параметр «Разрешены 32-разрядные приложения» (Enable 32-Bit Applications) имеет значение False, так как используется 64-битный модуль wsisapi.dll. Использование 32-битного режима для 64-битной библиотеки приведет к ошибке HTTP 500.0.
  4. Установим параметр «Загрузить профиль пользователя» (Load User Profile) в значение True, чтобы процесс имел доступ к хранилищу программных лицензий.
  5. Изменим значение параметра «Тайм-аут по неактивности (минуты)» на 0, чтобы IIS не выгружал процесс при отсутствии активности клиентов.
  6. При необходимости изменим параметр «Удостоверение» (Identity) со стандартного ApplicationPoolIdentity на доменную или локальную учетную запись с правами администратора на сервере.

Соблюдение этих правил гарантирует стабильную работу 64-разрядного сервера 1С совместно с веб-сервером IIS без зависаний и сбоев авторизации.

← На главную