Исключение E_ACCESSDENIED при присоединении к событию на COM-сервере из.NET

У меня есть C++/ATL COM-сервер, который реализует события IConnectionPoint. Мой клиент - приложение C#, которое присоединяется к событиям. Когда COM-сервер создается как служба SYSTEM, клиент может правильно подключиться к событию. Когда COM-сервер создается как служба LocalService (предпочтительно), я получаю исключение E_ACCESSDENIED, когда присоединяюсь к событию.

Что я могу сделать, чтобы события работали, когда COM-сервером является LocalService?

Благодарю.

1 ответ

Вам нужно будет найти, какого пользователя пытается использовать LocalService, и убедиться, что у него есть доступ. Если вы не можете настроить доступ ко всему компьютеру, возможно, вам придется делать это программно, используя CoInitializeSecurity и использование идентификатора, который, как известно, имеет доступ.

Обратитесь к http://msdn.microsoft.com/en-us/library/ms679760(v=VS.85).aspx для получения дополнительной информации.

Другие вопросы по тегам