Неверный ProgId, создающий экземпляр компонента VB6 COM из ASP - PullRequest
0 голосов
/ 28 апреля 2011

Мы создаем экземпляр COM-компонента VB6 из классического ASP на Windows 2000 Server с помощью Server.CreateObject.Мы получаем сообщение об ошибке «недопустимый progid».

DLL зарегистрирована.Фактически мы можем запустить файл VBS, который использует WSCRIPT для создания экземпляра и запуска компонента, чтобы показать, что он зарегистрирован.

Почему ASP не может его создать?Связаны ли эти разрешения?Мы пробовали такие вещи, как помещение учетных записей IUSR и IWAM в группу администраторов (только временно), и это, похоже, не помогло.Мы предоставили всем доступ к папке, содержащей DLL.

Мы смогли зарегистрировать DLL на другом сервере и запустить там ту же страницу ASP, чтобы она работала.

Еще одна вещь: сервер мог быть переименован в одно времяИмя учетной записи IUSR отличается от имени машины).

Любая помощь приветствуется!

-Krip

Ответы [ 2 ]

0 голосов
/ 29 апреля 2011

Запустите Procmon и посмотрите, к какому разделу реестра пытается обратиться ваше приложение.Затем перейдите к этому ключу и посмотрите, куда он указывает.

Я думаю, что вы просто неправильно написали имя ProgID в вашем ASP.

0 голосов
/ 28 апреля 2011

Вы не сказали, какие ОС задействованы, например, те, которые поддерживают UAC. Вы также не сказали, как была зарегистрирована эта библиотека.

Весьма вероятно, что вы попытались самостоятельно зарегистрировать эту вещь (например, запустили regsvr32.exe), и регистрация оказалась в виртуальном месте. Таким образом, он будет рассматриваться как «зарегистрированный» процессом, работающим в том же пользовательском контексте и подлежащем виртуализации (манифест не объявляет об этом в Vista)

Он также может быть зарегистрирован "на пользователя" в HKCU пользователя, но обычно это не происходит без специальных действий.

Даже пакет PDW мог бы обойти это, но установщик MSI был бы лучше. Простое копирование и запуск regsvr32.exe на них не является правильным развертыванием.

...