Как исправить ошибку Error 401.2 - Unauthorized при публикации базы 1С на IIS?

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

При работе с веб-сервисами и публикациями 1С на веб-сервере Internet Information Services (IIS) пользователи часто сталкиваются с ошибкой 401.2 - Unauthorized. Эта проблема особенно коварна тем, что одна база может работать абсолютно нормально, а другая, опубликованная с теми же (на первый взгляд) параметрами, выдает ошибку авторизации сразу после ввода адреса в браузере. Рассмотрим природу этой ошибки и разберем пошагово все способы ее решения, от простых манипуляций в мастере публикации до ручного редактирования конфигурационных файлов.

Суть проблемы: почему возникает ошибка 401.2?

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

Решение 1: Отключение аутентификации операционной системы в мастере публикации

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

  1. Откроем Конфигуратор вашей базы от имени администратора.
  2. Перейдем в меню Администрирование — Публикация на веб-сервере....
  3. На вкладке Основные проанализируем список флажков в нижней части окна.
  4. Найдем параметр Использовать аутентификацию операционной системы.
  5. Снимем галочку с этого параметра.
  6. Нажмем кнопку Опубликовать и согласимся на перезапуск веб-сервера.

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

Решение 2: Ручное редактирование файла default.vrd (для УПП 1.3 и старых конфигураций)

Рассмотрим более сложный случай. В некоторых старых конфигурациях, таких как УПП 1.3, в мастере публикации может отсутствовать заветная галочка управления аутентификацией ОС. В этой ситуации нам поможет прямое редактирование файла описания публикации. Проанализируем алгоритм действий:

Найдем в каталоге, куда была произведена публикация (путь вы указывали в поле "Каталог" при публикации), файл с именем default.vrd. Это XML-файл, который управляет поведением расширения веб-сервера 1С. Откроем его любым текстовым редактором (например, Notepad++).

Разберем структуру файла. Нам нужна корневая секция point. Найдем атрибут osauth. Если он установлен в значение true, это и является причиной ошибки 401.2. Изменим его:


<?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource"
        xmlns:xs="http://www.w3.org/2001/XMLSchema"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        base="/Buh_Dubl"
        ib="Srvr=&quot;Server1C&quot;;Ref=&quot;Buh_DB&quot;;"
        osauth="false">
    <ws>
        <point name="Exchange"
                alias="exchange.1cws"
                enable="true"/>
    </ws>
</point>

Установив osauth="false", мы принудительно сообщаем модулю расширения, что не нужно пытаться пробрасывать авторизацию Windows. Сохраним файл и обязательно перезапустим службу World Wide Web Publishing Service (или просто выполните команду iisreset в командной строке).

Решение 3: Настройка анонимной проверки подлинности в IIS

Даже если в 1С всё настроено верно, сам сервер IIS может блокировать анонимные запросы, что также приводит к 401.2. Разберем, как проверить настройки на стороне сервера:

  1. Запустим Диспетчер служб IIS (inetmgr).
  2. В дереве соединений слева развернем ваш сервер, папку Сайты (Sites) и выберем конкретное виртуальное приложение (вашу опубликованную базу).
  3. В центральной части окна ("Просмотр функций") найдем раздел IIS и дважды кликнем на иконку Проверка подлинности (Authentication).
  4. Проверим состояние пунктов:
    • Анонимная проверка подлинности (Anonymous Authentication) — должна быть Включена (Enabled).
    • Проверка подлинности Windows (Windows Authentication) — должна быть Отключена, если вы не используете доменный вход специально.

Важный нюанс: если включена только Windows-авторизация, браузер будет пытаться передать токен текущего пользователя ПК. Если сайт не находится в зоне "Местная интрасеть" или сервер не входит в домен, запрос завершится ошибкой 401.2.

Решение 4: Проверка прав доступа к файловой системе

Иногда сервер выдает 401.2, когда он не может получить доступ к ресурсам, необходимым для инициализации процесса проверки подлинности. Выясним, есть ли у системного пользователя IIS необходимые права. Посмотрим на два ключевых места:

Во-первых, папка с самой публикацией (где лежит default.vrd). Во-вторых, папка с бинарными файлами платформы 1С (обычно это C:\Program Files\1cv8\номер_версии\bin). Пользователь, от имени которого работает пул приложений (по умолчанию это IIS AppPool\ИмяПула или встроенная учетная запись IUSR), должен иметь права "Чтение и выполнение" на эти каталоги.

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

Решение 5: Особенности 32-разрядных приложений

Проанализируем ситуацию, когда платформа 1С установлена в 32-битной версии на 64-битную операционную систему Windows Server. В этом случае IIS по умолчанию может не позволить загрузить библиотеку wsapimod.dll.

Для исправления перейдем в Пулы приложений (Application Pools) в консоли IIS. Найдем пул, который обслуживает вашу базу (обычно он называется так же, как сайт). Правой кнопкой мыши выберем Дополнительные параметры.... В пункте Разрешить 32-разрядные приложения (Enable 32-Bit Applications) установим значение True.

Решение 6: Конфликты в web.config и петлевая проверка

Если все вышеперечисленное не помогло, проанализируем файл web.config, который создается в папке публикации. Иногда в нем могут быть жестко прописаны правила безопасности, переопределяющие глобальные настройки IIS. Поищем секцию:


<system.webServer>
    <security>
        <authentication>
            <windowsAuthentication enabled="false" />
            <anonymousAuthentication enabled="true" />
        </authentication>
    </security>
</system.webServer>

Убедимся, что настройки соответствуют нашим целям. Также стоит помнить о защитном механизме Windows Loopback Check. Если вы открываете базу, находясь прямо на сервере через localhost, система безопасности может блокировать проверку подлинности. В таких случаях помогает добавление параметра DisableLoopbackCheck в реестр Windows по адресу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa (тип DWORD, значение 1), однако это следует делать только в крайнем случае, понимая риски безопасности.

Подводя итог, можно сказать, что в 90% случаев ошибка 401.2 лечится простым снятием галочки "Аутентификация операционной системы" в мастере публикации 1С или исправлением атрибута osauth="false" в файле default.vrd. Все остальные шаги — это тонкая настройка окружения сервера, которая требуется при нестандартных конфигурациях безопасности.

← На главную