Назад | Перейти на главную страницу

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

Я пытаюсь зарегистрировать базовую 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.

Капа

Вот что мне пришлось сделать:

  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