Здравствуйте, Doc, Вы писали:
Doc>Пробовал сделать так: Doc>1) Service с COM-интерфейсом. Doc>Создал визардом ATL Service, добавил реализацию своего COM интерфейса. Doc>В итоге запускается сервис при старте ОС, а клиенты, еще при запросе IUnknown, получают E_ACCESSDENIED. Doc>Проблема решается если запускать сервис от текущего юзера. Однако это не решение...
Дело, скорее всего, не в текущем юзере.
В dcomcnfg для твоего сервиса на вкладке Security настрой access permission и launch permission.
Doc>2) Сделал так: Doc>- COM в отдельном EXE-сервере Doc>- сервис, создающий экземпляр и "удерживающий" его в течении работы системы. Сам ничего больше не делает, главное что все последующий клиенты получат этот же экземпляр. Doc>- клиенты получают доступ к единственному экземпляру. Doc>Вроде все ок, но как-то криво получилось.
Да. Сервис не нужен. EXE-сервер может сам себя держать в памяти.