![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка Interface not supported при подключении через TDCOMConnect [WinXP]
Alexander_K © (2010-09-10 11:46:00)Добрый день!
Ситуация следующая:
Я написал сервер приложений (по технологии MIDAS). В клиентской части, для соединения с сервером приложений использую компонент TDCOMConnection.
При попытке подключения к серверу приложений на локальном компьютере (установка свойства Connected у TDCOMConnection), сервер запускается и свойство Connected переходит в true, то есть все работает.
Если же я переношу сервер приложений на другой комьютер (Win XP), соответственно настоив DCOM безопасность на нем, при попытке установить свойство Connected у TDCOMConnection в true выдается ошибка:
Interface not supported, и соответственно Connected в true не переходит, причем форма сервера на удаленном компьютере появляется.
Теперь о конфигурации сети:
Сервер не в домене, а мой компьютер в домене.
Поскольку к данному серверу приложений будут коннектится очень много пользователей, и находящихся в домене и нет, то я посчитал что надо настроить доступ DCOM без ограничений для всех, и настроил безопасность COM следующим образом:
Через службу компонентов -> свойста->Мой компьютер->Свойства по умолчанию назначил свойства:
Разрешить использование DCOM на этом компьютере
уровень проверки подлинности - Нет
Уровень олицетворения - Анонимное
Безопасность COM:
Добавил группы SYSTEM, анонимный вход, все, гости, интерактивные, сеть, удаленный доступ и разрешил им полный доступ в правах доступа и в разрешениях на запуск и активизацию, так же в ограничениях я тоже добавил все эти группы и установил везде все галочки.
Потом в Настройка DCOM нашел мой сервер и в свойствах сделал следующее:
Уровень проверки подлинности - Нет
Какую учетную запись использовать для запуска - Текущий пользователь
Соответственно вопрос:
почему может не работать?
Может каких-то dll-ек не хватает на сервере? (ведь делфей там не стоит)
Я так понимаю на клиентском компьютере DCOM настраивать не надо?
Очень прошу помощи, заранее благодарен!
gnom (2010-09-13 15:20:00) [21]>_Юрий
А почему не стали бы и на что заменили бы?
Если можно - поподробней
_Юрий (2010-09-11 10:27:00) [22]c Borland SocketServer тоже не все гладко, иногда она имеет свойство вдруг начать дурить, и не успокаивается без перезапуска.
В любом случае, на клиенте лучше сделать настройку - как соединяться - через DCom или Socket'ы (абстрагироваться от конкретной реализации подключения несложно, ибо есть общий предок), а на сервере всегда должен работать Borland SocketServer.
А совсем по хорошему, дурная это технология. Новый проект ни за что не стал бы делать таким образом
Loginov Dmitry (2010-09-10 22:57:00) [23]
> Я так понимаю на клиентском компьютере DCOM настраивать
> не надо?
В свойствах объекта DCOM "Мой компьютер" необходимо поставить "Уровень проверки подлинности - Подключение".
Loginov Dmitry (2010-09-10 22:54:00) [24]Не рекомендую связываться с TDCOMConnection. Настройка разрешений DCOM на сервере - это вечная головная боль. И не всегда удается его настроить. И винда не всегда работает как должна. Иногда что-то портится, приходится винду переустанавливать. Приходится отключать сетевые экраны, поскольку TCP-порты DCOM-а на сервере - это рандом.
Все тоже самое можно организовать через SocketConnection, при этом на сервере должен быть открыт вполне конкретный TCP-порт (может несколько), и запущена одна дополнительная служба Borland SocketServer (причем она есть в демках в исходниках, и на ее основе можно делать свои приложения). В настройки DCOM-а даже лазить не придется.
Alexander_K (2010-09-10 13:17:00) [25]В общем я разобрался с проблемой, я разрешил группу гостей везде, и в политиках безопасности тоже, и вроде все заработало