Я пытаюсь зарегистрировать базовую DLL-библиотеку COM на стандартном компьютере 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: \ и кажется иметь правильные разрешения (хотя это была бы совсем другая ошибка).
* ОБНОВЛЕНИЕ: Путем дополнительного тестирования мы определили (через обходчик зависимостей), что файлы ieshims.dll и linkinfo.dll отсутствуют. Они есть на автомате, но сообщили как не смогли найти. Это верно как для capicom.dll, так и для dll собственной разработки.
Спасибо за любую помощь или мысли, которые могут у вас возникнуть!
Похоже, что wscript был запущен в 64-битном режиме и не смог увидеть регистрации ... следуя инструкциям на http://forums.iis.net/t/1154189.aspx Мне удалось запустить createobjects в 32-битном режиме (через классический asp), и компоненты работали так, как должны. Всем спасибо за помощь!
Вы можете попробовать открыть свою DLL с помощью Зависимость Уокер. Если у вас есть недостающие библиотеки 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.
Капа
Вот что мне пришлось сделать:
Установить Capicom SDK
Скопируйте capicom.dll в папку% SYSTEMROOT% \ syswow64
Зарегистрировать DLL
%systemroot%\syswow64\regsvr32.exe "%systemroot%\system32\capicom.dll"
%systemroot%\syswow64\wscript camonitor.vbs /cacrlok /smtp /smtpserver:your_server /smptto:your_email