Проблема с regsvr32 на Windows Server 2008

Я пытаюсь зарегистрировать базовый COM DLL на стандартном окне Windows Server 2008.

я бегу regsvr32 capicom.dll и это сообщает DllRegisterServer in capicom.dll succeeded, Это тот же процесс, который мы использовали в течение многих лет на Windows Server 2003.

К сожалению, когда я пытаюсь создать объект на очень простом примере Microsoft vbscript Set oStore = CreateObject("CAPICOM.Store") выдает ошибку "компонент ActiveX не может создать объект".

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

DLL хранится на d:\ и, похоже, имеет правильные разрешения (хотя это было бы совсем другая ошибка).

*UPDATE: Through additional testing, we have determined (via dependency walker) that ieshims.dll and linkinfo.dll are missing. They are on the machine, but reported as could not find. This is true of both capicom.dll and an internally developed dll.

Thanks to any help or thoughts you might have!

6 ответов

Решение

Похоже, что wscript был запущен в 64-битном режиме и не смог увидеть регистрации... следуя инструкциям на http://forums.iis.net/t/1154189.aspx Я смог запустить createobjects в 32-битном режиме (через классическую asp) и компоненты работали как надо. Спасибо всем за помощь!

Вы можете попробовать открыть вашу DLL с помощью Dependency Walker. Если у вас есть какие-либо отсутствующие библиотеки DLL, от которых зависит capicom.dll, Dependency Walker поможет вам их найти.

В 64-битной операционной системе Windows существует две версии файла Regsv32.exe:

The 64 bits is %systemroot%\System32\regsvr32.exe.
The 32 bits is %systemroot%\SysWoW64\regsvr32.exe. 

Попробуйте скопировать любой из этих двух исполняемых файлов вместе с файлом OCX или DLL для регистрации. Запустите в режиме администратора или измените свойства исполняемого файла на вкладке совместимости, чтобы "запустить эту программу от имени администратора". Зарегистрируйте ActiveX (ocx) или DLL или запустите RegSvr32.exe nombre_dll nombre_activeX RegSvr32.exe.

Убедитесь, что вы запускаете regsvr32 в командной строке от имени администратора. Также попробуйте поместить DLL в каталог system32 при запуске исполняемого файла.

Щелкните правой кнопкой мыши значок командной строки и выберите "Запуск от имени администратора", а затем попробуйте зарегистрировать свою DLL. Помните, что у вас есть права администратора на Windows.

плащ с капюшоном

Вот что я должен был сделать:

  1. Установите Capicom SDK

  2. Скопируйте capicom.dll в папку%SYSTEMROOT%\syswow64

  3. Зарегистрировать DLL

%systemroot%\syswow64\regsvr32.exe "%systemroot%\system32\capicom.dll"

  1. Запустите скрипт camonitor.vbs

%systemroot%\syswow64\wscript camonitor.vbs /cacrlok /smtp /smtpserver:your_server /smptto:your_email

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