Проблемы с 32-битной ActiveX DLL на 64-битной ОС - PullRequest
3 голосов
/ 05 января 2011

Я пытаюсь переместить классифицирующий сайт ASP на 64-битный сервер Windows 2008. Проблема, с которой я столкнулся сейчас (могут быть и другие, если / когда я преодолею эту проблему), заключается в том, что сайт зависит от старой библиотеки VB6 (32-разрядной), и я получаю пресловутый «компонент ActiveX не может создать объект» ошибка.

Я пытался вывести IIS7 из уравнения, пытаясь заставить его работать с простым файлом сценария VBS, и это дает мне то же самое.

Единственная зависимость, которую имеет эта DLL, - это ADO 2.6, и из того, что я прочитал, это не поддерживается и не требуется для Windows 2008, поскольку WDAC включен и заменил MDAC.

Я использую следующее для регистрации моего компонента:

C:\Windows\SysWOW64\regsvr32.exe "C:\MyVb6Com.dll"

Я проверил реестр, и там все выглядит правильно. Мой файл VBS также прост:

CreateObject("MyVb6Com.Session")

И сразу выдает ошибку:

ActiveX component can't create object: 'MyVb6Com.Session'

На стороне IIS я уже пытался изменить настройки пула приложений, чтобы включить 32-разрядные приложения, и это тоже не помогло (конечно, если я не могу заставить его работать с файлом VBS, в любом случае это ничего не изменит).

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

2 голосов
/ 05 января 2011

В пуле приложений на вашем веб-сайте IIS7 выберите «Дополнительные параметры» и в верхней части установите Включить 32-разрядные приложения в «Истина».

IIS7 на 64-разрядной машине не будетиспользуйте 32-битные библиотеки DLL, если это не установлено.

2 голосов
/ 05 января 2011

Убедитесь, что вы также используете 32-битный WScript для тестирования вашего VB Script.Двойной щелчок по нему будет использовать 64-разрядную версию - это поможет перейти к диагностике проблемы.

...