#c# #dll #com #dcom
#c# #dll #com #dcom
Вопрос:
Я разработал библиотеку классов COM dll в .net. Определите простой класс, извлеките интерфейс для класса и сделайте его общедоступным. Украсил класс classInterfaceType.None . Добавлено ‘с использованием System.Runtime.Службы взаимодействия;’. Также есть [assembly: ComVisible (true)] в AssemblyInfo.cs, для его «Целевой платформы» установлено значение «Любой процессор» (что, я полагаю, означает как x86, так и x64). Добавлен новый файл .snk. Теперь я создаю, и он успешно создается. Зарегистрирован на компьютере с помощью ‘regasm’, и он успешно регистрируется.
Теперь, чтобы протестировать его локально, я открываю Excel VBA в Tools-> Add Reference’ и вижу свою dll в списке. Добавлена ссылка на VBA, и теперь я могу успешно вызвать метод класса.
Теперь мое следующее требование — создать экземпляр этого COM с удаленного компьютера. Для этого мне нужно установить свойство ‘Удаленный запуск’ для этого COM, включенного из ‘dcomcnfg’ (dcomconfig -> Службы компонентов -> Компьютеры-> Мой компьютер -> Конфигурация DCOM -> MyCOMDll — щелкните правой кнопкой мыши -> Свойства -> Безопасность -> Разрешения на запуск и активацию -> Настройка -> Редактирование -> Включить удаленный запуск / активировать для желаемых пользователей.
Однако проблема в том, что я не нахожу свою DLL, указанную в узле ‘DCOM Config’ в службе компонентов.
Теперь, если я добавлю ‘System.Введите «Priceservices» в код класса, создайте снова и используйте «regcs» из командной строки VS, чтобы зарегистрировать его, он отображается в приложении COM в dconcnfg, и с добавлением этого как COM , часть, в которой я не уверен, как теперь установить его свойство, чтобы я мог создать его экземпляр на своем компьютере.локальная машина с удаленного компьютера .., не вижу параметров «Удаленный запуск / активация» в окне свойств, когда он находится под COM , (что я не понимаю, потому что на самом деле это приложение COM ), так что в этом проблема, буду очень признателен, если кто-нибудь поможет мне разобраться правильнонаправление
Комментарии:
1. Это не имеет смысла, DCOM может применяться только к серверам вне процесса. Который вы не можете создать в .NET, вы создали сервер в процессе.
2. это то, что я искал — blogs.microsoft.co.il/sasha/2014/01/07 /. …