Не удается зарегистрировать DLL на сервере 2012

14565
Clint Davis

У нас есть старый классический ASP-сайт, который я пытаюсь разместить на новом сервере Server 2012. Он использует DLL, разработанную в домашних условиях на VB6.

Я скопировал установочный файл, и это ошибка. Я пытаюсь зарегистрировать DLL вручную, используя "regsvr32 pathToDll \ theDll.dll", и она возвращается с ошибкой 0x80004005. Google предлагает мне запустить команду из командной строки с повышенными правами. Так я и получаю ту же ошибку. Я также попытался запустить ту же команду из каталога SYSWOW64, и я получил ту же ошибку.

Через Google я также обнаружил, что это может быть из-за отсутствующих зависимостей. Я использовал Dependency Walker и, конечно же, ему не хватало нескольких вещей. Итак, я узнал, что мне нужно было установить файлы среды выполнения VB6 и включить несколько функций, и все зависимости были разрешены. Поэтому я попытался перерегистрировать DLL, и она все еще выдает ту же ошибку.

Есть идеи? Я знаю, что это 32-битная DLL на 64-битной машине, но она должна по крайней мере зарегистрироваться.

1
После установки зависимостей вы использовали SysWow64 версию regsvr? Scott Chamberlain 10 лет назад 0
@ ScottChamberlain Да, я сделал. По-прежнему выдает ошибку 0x80004005. Clint Davis 10 лет назад 0

1 ответ на вопрос

1
Clint Davis

Хорошо, после дополнительных поисков я обнаружил, что через Dependency Walker dll ссылается на API-MS-WIN-CORE-SYNCH-L1-1-0.DLL через цепочку других dll.

Основываясь на этой информации от Microsoft, не похоже, что она совместима как есть. Кажется, что мне пришлось бы перекомпилировать DLL, чтобы заставить эту работу изменить ссылки.

Решение: я раскручиваю виртуальную машину для этого унаследованного приложения.

Убедитесь, что вы отметили свой собственный ответ как принятый, иначе он будет перетекать на страницу со шрифтом как вопрос без ответа. Scott Chamberlain 10 лет назад 0

Похожие вопросы