0

Я пытаюсь развернуть dll COM COM-COM для веб-приложения. Во время разработки, для сборки, которая должна регистрироваться для COM-взаимодействия, у меня есть опция «Регистрация для COM-взаимодействия», установленная в свойствах сборки. В этом методе все работает отлично.Регистрация dll COM COM COM работает из сборки проекта, но не из regasm

Однако, когда я развертываю приложение ASP.NET и пытаюсь зарегистрировать сборку вручную, используя инструмент regasm, это не сработает. :(

Моя конечная цель заключается в следующем:.

После того, как пользователь заходит на сайт и не имеет объект зарегистрирован, пользователь может зарегистрировать DLL с помощью ClickOnce После этого пользователь не должен получить приглашение на что-нибудь и все надо просто работать!

Спасибо заранее.

ответ

2

Как и следовало ожидать, веб-приложение, которое пытается установить COM DLL на клиентском компьютере будет сталкиваться со многими препятствия безопасности. Пользователь может без прав администратора устанавливать .NET-код (включая классы с видимым COM-кодом) через ClickOnce, но я думаю, что вы можете обнаружить, что даже это не достигает того, чего вы хотите ...

Установки ClickOnce развернуты для неявное местоположение под секцией профиля пользователя файловой системы. Любые компоненты COM в развернутом приложении видны внутри приложения, но не отображаются в другом месте на клиентской машине. В частности, клиентский скрипт, запущенный в браузере, не сможет вызывать COM-компоненты, развернутые с помощью ClickOnce.

Нажатие кнопки ClickOnce довольно намеренно продолжает разворачивать код отдельно от остальной части системы.

Я не вижу способа развертывания вашего веб-приложения, а затем взаимодействую с COM-библиотекой, если у пользователя нет прав администратора и явным образом регистрирует DLL. В общем, я думаю, что это хорошая вещь.

У кого-то еще может быть лучшее предложение, но единственный способ, который я вижу, - это построить функциональность, которая использует эту DLL, в .NET-приложении, которое работает на рабочем столе. Это можно было бы развернуть через ClickOnce и вызвать через ссылку в вашем веб-приложении. Он может даже отправлять данные на ваш веб-сервер. Но я не вижу способа взаимодействия с браузером.

+0

Спасибо, сэр! Ваше восприятие и знания помогли мне найти путь к решению. – Sai

1

не могу помочь вам с материалом ClickOnce, но это может быть вам нужно использовать/кодовую базу варианта для Regasm (если вы не устанавливаете его в ПКК), например

regasm AssemblyName.dll /codebase 

Вы также должны быть администратором для того, чтобы работать под Vista/Windows 7.

 Смежные вопросы

  • Нет связанных вопросов^_^