ПРОБЛЕМА РЕШЕНА В ОБНОВЛЕНИИ KB4499164
ПОСЛЕ ОБНОВЛЕНИЯ WINDOWS (МАРТ 2019) ВОЗНИКАЕТ УКАЗАННАЯ ОШИБКА
ПРОБЛЕМА ВЫЗВАНА ОБНОВЛЕНИЕМ
KB4489878
ОБХОДНЫЕ ВАРИАНТЫ УКАЗАНЫ НА САЙТЕ (ссылка кликабельна)
MICROSOFT в курсе проблемы, работает над ее решением и обещает исправление в последующих обновлениях.
Disclaimer
Данная инструкция предоставляется в ознакомительных и рекомендательных целях, все рекомендации, перечисленные в ней, выполняются на свой страх и риск.
Компания не несет ответственности за ущерб аппаратному или программному обеспечению, причиненный в результате неверного истолкования или выполнения перечисленных здесь действий.
Предполагается, что в качестве ОС для машины с сервером приложений Лоцман выбрана одна из серверных ОС Microsoft
Windows Server 2003
Windows Server 2008
Windows Server 2008 R2
Windows Server 2012*
Сервер приложений ЛОЦМАН реализован в виде COM+ приложения.
Для обеспечения возможности удаленных подключений к COM+ приложению, на вашем сервере должна быть добавлена роль Application Server
Добавление роли осуществляется в оснастке управления сервером Server Manager, через мастер или вручную.
Учетная запись, под которой осуществлен вход на сервер должна располагать достаточными правами для осуществления перечисленных операций.
1. В Активном Каталоге (Active Directory) необходимо создать специальную учетную запись, от имени которой в дальнейшем будет запускаться сервер приложений ЛОЦМАН.
Запрещается использовать встроенные ученые записи Администратора домена, и другие. Нужно создать новую учетную запись.
2. В Активном каталоге (Active Directory) включить в свойствах этой учетной записи свойство "Учетная запись доверена для делегирования" (Account Is Trusted For Delegation)
В Windows 2008 и выше эта настройка находится на вкладке Делегирование (Delegation). В этом случае необходимо выбрать средний пункт
Доверять этому пользователю делегирование служб (только Kerberos)
Trust this user for delegation to any service (kerberos only)
2.1. В зависимости от режима работы домена, вкладка Делегирование может отсутствовать в свойствах учетной записи.
В этом случае необходимо воспользоватся утилитой setspn.
Запустить командную строку с правами администратора
в ней выполнить:
setspn -a dcom/ServerName AccountName
Здесь
ServerName – имя компьютера с сервером приложений, в формате FQDN
AccountName – учетная запись для которой нужно включить делегирование, в формате FQDN
В случае успешного выполнения команды setspn (в командной строке появится уведомление - Updated Object) снова откройте свойства учетной записи, вкладка Делегирование должна появиться.
Подробнее о команде
setspn можно прочитать на
сайте разработчика.
2.2. В случае, если вкладка
Делегирование изначально существует, но проблема повторяется на некоторых машинах (например с Windows XP), необходимо так же выполнить команду
setspn.
3. В Активном каталоге (Active Directory) включить в свойствах компьютера, на котором установлен сервер приложений ЛОЦМАН опцию "Доверять компьютеру права представителя" (Trust computer for delegation)
В Windows 2008 и выше эта настройка находится на вкладке Делегирование (Delegation). В этом случае необходимо выбрать средний пункт
Доверять этому пользователю делегирование служб (только Kerberos)
Trust this user for delegation to any service (kerberos only)
В случае отсутствия вкладки Делегирование см. п. 2.1 (в этом случае AccountName - имя компьютера).
4. Открыть оснастку Службы компонентов (Component Services) -> Компьютеры - Мой Компьютер - свойства. Вкладка свойства по-умолчанию, установить Уровень проверки подлинности по-умолчанию - Подключиться
Уровень олицетворения по-умолчанию - Делегирование
!!! Если появится сообщение о том что параметры вступят в силу после перезагрузки - обязательно выполнить перезагрузку !!!
5. Открыть оснастку "Службы компонентов", вызвать свойства COM+ приложения ASCON Applications На закладке "Безопасность" установить следующие свойства: Уровень проверки подлинности для вызовов - Подключение (Authentication Level for calls - Connect) Уровень олицетворения - Представитель (Impersonate level - Delegate)
6. Назначить созданную в п.1 учетную запись на запуск COM+ приложения ASCON Applications. Можно через Центр Управления КОМПЛЕКСом, можно через службу компонентов (Component Service) правой кнопкой свойства - закладка Удостоверение, там два варианта: Текущий и Указанный, нужно выбрать "Указанный", далее ввести учетную запись (см п.1) и ее пароль.
7. После того как назначили пользователя, необходимо остановить сервер приложений (В службе компонентов команда Завершить работу или Shut Down контекстного меню COM+ приложения)
8. Учетная запись, от имени которой происходит запуск сервера приложений должна входить в следующие ЛОКАЛЬНЫЕ группы
Администраторы
Пользователи DCOM
9. Доступ к серверу приложений может блокировать встроенный Брэндмауэр Windows, или аналогичное ПО сторонних разработчиков.
Interface not supported это "перефразированое Delphi" сообщение Windows
" A security package specific error occurs" - "Общая ошибка в пакете безопасности" такое сообщение может появиться в любом другом приложении, использующими в своей работе распределенную модель.
Во всех известных нам случаях проблема соединения клиентов с сервером приложений заключается в настройках окружения, в котором установлены сервер и клиент.
Например для диагностики причин можно воспользоваться журналом событий Windows.
При не успешном подключении пользователя к COM+ приложению в журнале Безопасность должна появиться запись с указанием причин отказа подключения, протокол и пр. данные.
Проверьте журнал Система на предмет наличия ошибок и предупреждений с источником DCOM или COM+
Устранение ошибок настройки операционных систем, пользовательских профилей, Активного каталога, сети, протоколов и пр. позволяет решить эту проблему.
Также для диагностики причин ошибки можно использовать стороннее ПО, анализаторы пакетов.
Например
WireShark
И выявить, какая именно ошибка возникает в момент подключения,
одна из возможных ошибок -
Kerberos: KDC_ERR_S_SPRINCIPAL_UNKNOWN
означает, что для учётной записи не зарегистрирован SPN, как его зарегистрировать, см. выше.
В случае, если сервер приложений и клиент находятся относительно друг друга в разных доменах, между ними должны быть настроены двусторонние доверительные отношения.
Домены должны быть членами одного леса доменов. В противном случае соединение с сервером приложений из другого домена по DCOM будет невозможно.
Подробнее о настройках ЛОЦМАН на Windows Server описано в статье базы знаний # 100019