Как обновить платформу 1С на веб-сервере IIS и восстановить работу опубликованных баз?

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

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

Проблема часто возникает, когда пути к системным библиотекам 1С, используемым веб-сервером (например, wsisapi.dll), остаются связанными со старой версией платформы. IIS по-прежнему пытается использовать устаревшие файлы, в то время как новая платформа ожидает обращения к своим компонентам. Давайте выясним, как исправить эту ситуацию и избежать подобных проблем в будущем.

Основное решение: Перепубликация информационных баз через конфигуратор

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

  1. Резервное копирование: Прежде чем приступать к любым изменениям, мы настоятельно рекомендуем выполнить полное резервное копирование всех информационных баз и конфигураций веб-сервера. Это позволит вам восстановить работоспособность системы в случае непредвиденных проблем.

  2. Удаление старой платформы (рекомендуется): Для обеспечения максимально чистой установки новой версии платформы, мы советуем удалить старую версию платформы 1С с сервера. Это поможет избежать конфликтов файлов и неверных путей.

  3. Установка новой платформы: Установите новую версию платформы 1С на сервер, где расположен веб-сервер IIS. Убедитесь, что все необходимые компоненты платформы установлены корректно.

  4. Перезагрузка сервера (после удаления): После удаления старой платформы и до установки новой, а также после установки новой платформы, мы рекомендуем выполнить перезагрузку сервера. Это поможет очистить кэш системы и гарантировать применение всех изменений.

  5. Перепубликация баз через конфигуратор:

    Для каждой информационной базы, которая была ранее опубликована на IIS, выполним следующие шаги:

    1. Запустите Конфигуратор для нужной информационной базы.

    2. Перейдите в меню Администрирование -> Публикация на веб-сервере...

    3. В открывшемся окне публикации убедитесь, что выбраны корректные настройки (имя публикации, каталог публикации, и т.д.). Даже если ничего не менялось, само действие перепубликации заставит 1С обновить конфигурационные файлы на веб-сервере.

    4. Нажмите кнопку Опубликовать.

    5. Подтвердите перезапись существующих файлов, если это потребуется.

    Повторите этот процесс для всех информационных баз.

  6. Перезапуск IIS: После перепубликации всех баз мы должны перезапустить веб-сервер IIS. Для этого:

    1. Откройте Диспетчер служб IIS.

    2. В разделе Действия (обычно справа) выберите Перезапустить для всего сервера или для соответствующего пула приложений, в котором опубликованы ваши базы.

    Этот шаг необходим, чтобы IIS загрузил обновленные конфигурационные файлы и пути к библиотекам.

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

Подробный анализ и дополнительные аспекты обновления платформы 1С на IIS

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

Файл wsisapi.dll и его роль

Ключевую роль в работе веб-сервисов 1С под IIS играет файл wsisapi.dll (для Apache это wsap22.dll или wsap24.dll). Этот файл является ISAPI-расширением, которое обрабатывает запросы к 1С на веб-сервере. При обновлении платформы путь к этому файлу может измениться (например, с C:\Program Files (x86)\1cv8\8.3.15.xxxx\bin\wsisapi.dll на C:\Program Files (x86)\1cv8\8.3.20.xxxx\bin\wsisapi.dll). Если IIS продолжает использовать старый путь, веб-сервисы перестают работать.

При перепубликации через конфигуратор 1С автоматически обновляет ссылки на актуальный wsisapi.dll в файлах конфигурации веб-сервера (например, web.config) и в настройках IIS. Если по каким-либо причинам перепубликация невозможна или вы предпочитаете ручное управление, вы можете вручную изменить путь к wsisapi.dll в "Сопоставлении обработчиков" (Handler Mappings) для каждой публикации в Диспетчере служб IIS. Однако при этом учтите, что настройки авторизации могут сброситься на значения по умолчанию, и потребуется повторная настройка анонимной авторизации или пользователя, от имени которого работает веб-сервис.

Утилита webinst.exe

Для регистрации 64-разрядного модуля расширения веб-сервера 1С (если вы используете 64-битную платформу и IIS) мы можем использовать утилиту webinst.exe. Эта утилита находится в каталоге bin установки "1С:Предприятия" соответствующей версии. Она помогает корректно зарегистрировать компоненты 1С для взаимодействия с веб-сервером, однако в большинстве случаев перепубликация через конфигуратор выполняет необходимые действия.

Сопоставление обработчиков (Handler Mappings)

После обновления платформы или при первичной настройке веб-сервисов мы обязательно проверяем "Сопоставление обработчиков" в Диспетчере служб IIS. Убедимся, что для расширений, связанных с 1С (например, *.1cws для веб-сервисов и *.1crs для HTTP-сервисов), заданы правильные сопоставления обработчиков, указывающие на актуальный wsisapi.dll. Также следует убедиться, что для этих обработчиков разрешено выполнение скриптов и приложений. Мы можем проверить или добавить их вручную, если это необходимо:

  1. Откроем Диспетчер служб IIS.

  2. Выберем нужный веб-сайт или приложение 1С.

  3. В средней панели откроем Сопоставления обработчиков.

  4. Проверим наличие записей для *.1cws и *.1crs, которые должны указывать на wsisapi.dll из новой версии платформы (например, C:\Program Files\1cv8\8.3.20.xxxx\bin\wsisapi.dll).

Ограничения ISAPI и CGI (ISAPI and CGI Restrictions)

Важно проверить наличие разрешающей записи для "1С Web service" в разделе "Ограничения ISAPI и CGI" в Диспетчере служб IIS на уровне сервера. Если установка выполняется в 64-разрядной среде, но используется 32-разрядный модуль wsisapi.dll (например, если IIS настроен для работы с 32-разрядными пулами приложений), мы должны убедиться, что для соответствующего пула приложений (например, DefaultAppPool) включено разрешение работы 32-разрядных приложений. Это делается в настройках пула приложений -> Дополнительные параметры -> Разрешить 32-разрядные приложения.

Права доступа

Корректные права доступа являются краеугольным камнем стабильной работы веб-сервисов. Мы должны убедиться, что:

  1. Для группы IIS_IUSRS предоставлены права на чтение и выполнение файлов в папке с опубликованной базой 1С (там, где лежит web.config и другие файлы публикации).

  2. Для группы IIS_IUSRS предоставлены полные права на каталог с установленными файлами "1С:Предприятие" (по умолчанию C:\Program Files (x86)\1cv8\ для 32-разрядного модуля и C:\Program Files\1cv8\ для 64-разрядного).

  3. Если информационная база файловая, группе IIS_IUSRS также необходимы полные права на каталог с файлами самой информационной базы (файл 1Cv8.1CD и связанные с ним).

Автоматическое обновление тонкого клиента с веб-сервера IIS

Один из удобных методов обновления платформы для тонкого клиента без необходимости ручного распространения дистрибутивов – это размещение дистрибутива новой версии платформы на веб-сервере в виде ZIP-архива. Этот метод особенно полезен для ПРОФ-версий и позволяет клиентам автоматически получать обновления.

  1. Подготовка дистрибутива:

    Мы создадим ZIP-архив с дистрибутивом тонкого клиента новой версии. Этот архив должен содержать все файлы установки тонкого клиента. Разместим его в отдельной папке на веб-сервере (например, C:\inetpub\wwwroot\update). Убедимся, что группа IUSR (или IIS_IUSRS) имеет права на "Чтение и выполнение" для этой папки.

  2. Настройка IIS для дистрибутива:

    В консоли Диспетчера служб IIS мы добавим новое приложение для папки с дистрибутивом. Укажем псевдоним (например, 1C_update) и физический путь к папке (например, C:\inetpub\wwwroot\update). Это сделает дистрибутив доступным по URL, например, http://ваш_сервер/1C_update/windows64.zip.

    Внутри папки update (или аналогичной, где лежит ZIP-архив) создадим файл web.config со следующим содержимым, чтобы IIS правильно отдавал ZIP-файлы:

    
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <system.webServer>
            <staticContent>
                <mimeMap fileExtension=".zip" mimeType="application/zip" />
            </staticContent>
        </system.webServer>
    </configuration>
    

    Некоторые источники указывают, что в последних платформах инсталлятор может выкладывать дистрибутивы в C:\Program Files\1cv8\8.3.хх.хххх\bin\distr. Мы можем просто переложить эти дистрибутивы (без перепаковки) в подготовленную папку update.

  3. Настройка сервера 1С:

    На сервере 1С:Предприятия мы найдем файл conf.cfg, который обычно расположен в каталоге C:\Program Files\1cv8\conf. Добавим в него строки PublishDistributiveLocationWindows32 и PublishDistributiveLocationWindows64, указав URL-пути к ZIP-архивам с 32-битной и 64-битной версиями тонкого клиента соответственно:

    
    PublishDistributiveLocationWindows32=http://ваш_сервер/1C_update/windows32.zip
    PublishDistributiveLocationWindows64=http://ваш_сервер/1C_update/windows64.zip
    

    Конечно, мы заменим ваш_сервер и имена файлов на актуальные. Если у вас только одна архитектура, укажите соответствующую строку.

  4. Настройка клиента 1С:

    На клиентских машинах в настройках стартового менеджера 1cestart мы проверим наличие отметки "Устанавливать автоматически новую версию". При таких настройках клиент 1С при запуске обнаружит обновление и предложит автоматически установить новую версию платформы.

Обновление серверной платформы

Обновление серверной части включает в себя не только установку файлов, но и регистрацию компонентов (таких как COM и консоль администрирования), а также обновление пути к компоненте wsisapi.dll в конфигурационных файлах веб-сервера. Если после обновления платформы на сервере и клиенте отображается старая версия платформы, возможно, не была обновлена служба агента сервера 1С. В таком случае мы должны проверить установку компонента "Сервер 1С:Предприятия 8" и обновить путь к файлу ragent.exe в настройках службы "Агент сервера 1С:Предприятия 8.3" через services.msc (Службы).

Заключение

Обновление платформы 1С на веб-сервере IIS — это рутинная, но требующая внимания операция. Мы выяснили, что самым эффективным способом восстановления работоспособности веб-сервисов после обновления является перепубликация информационных баз через конфигуратор. Это действие гарантирует, что все пути к необходимым компонентам платформы 1С будут актуализированы на веб-сервере. Кроме того, мы рассмотрели другие важные аспекты, такие как ручная проверка wsisapi.dll, сопоставления обработчиков, права доступа и возможности автоматического обновления тонкого клиента, которые помогут нам обеспечить стабильную и безопасную работу нашей системы 1С.

← На главную