Могу ли я установить. NET COM библиотека находится в общей сетевой папке? - PullRequest
0 голосов
/ 08 декабря 2010

COM-сервер, зарегистрированный с помощью reg asm, находится в сетевой папке и работает неправильно. При попытке создания объекта выдается ошибка «Ошибка автоматизации». Все работает правильно, если DLL находится на локальном диске.

Дополнительная информация:

  • Библиотека COM написана на. Net 3.5

  • Доступ к COM через макрос VB

  • Библиотека имеет строгое имя

Ответы [ 2 ]

1 голос
/ 08 декабря 2010

Помещение COM-серверов в общий сетевой ресурс вызывает проблемы. Произойдет случайный сбой, когда сопоставленная буква диска больше не будет сопоставлена ​​или сопоставлена ​​в другом месте. По крайней мере, вам понадобится UNC-путь к серверу (например, \\machine\folder\etc), но вы не уверены, что получите его из Regasm.exe с параметром / codebase. Проверьте значение ключа реестра, HKLM \ Software \ Classes \ CLSID {guid}. Убедитесь, что вы использовали / codebase, это не может работать без него.

Доверие может быть проблемой, используйте fuslogvw.exe, чтобы увидеть, что происходит. Вам понадобится caspol.exe, чтобы назначить доверие.

Тогда есть зависимые DLL, ни Windows, ни CLR не смогут их найти. Чтобы увидеть, что на самом деле происходит, используйте утилиту SysInternals ProcMon. Вы увидите, что COM просматривает ключи реестра и ищет библиотеки DLL, наблюдает за ошибочными вызовами.

0 голосов
/ 08 декабря 2010

Возможно, компонент требует полного доверия, и вы не используете .net 4.0. В более старых версиях сетевым расположениям не предоставляется полное доверие, если вы не измените наборы разрешений вручную.

...