Please, pay attantion that now you are in public part of FAQ-Area. Register and find more FAQ-articles in Personal Cabinet.

FAQ#700251: Interface not supported

Keywords: interface ошибка запуск dcom Created: 2008-01-09 12:43:29
Linked Articles: Changed: 2020-10-28 13:59:55

Problem:

При запуске ЛОЦМАН Клиент, или при проверке соединения с СП появляется сообщение: [имя сервера приложений] "Interface not supported"

Solution:

ПРОБЛЕМА РЕШЕНА В ОБНОВЛЕНИИ 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