0
votes

We're instantiating a VB6 COM component from classic ASP on a Windows 2000 Server using Server.CreateObject. We get the 'invalid progid' error message.

The DLL is registered. In fact we can run a VBS file that uses WSCRIPT to instantiate and run the component so that shows it is registered.

Why is ASP failing to instantiate it? Is this permissions related? We've tried things like putting the IUSR and IWAM accounts in the Administrators group (just temporarily) and it didn't seem to help. We've granted Everyone access to the folder containing the DLL.

We were able to register the DLL on another server and run the same ASP page there so it does work.

Just one other thing: the server may have been renamed at one time (the IUSR account name differs from the machine name).

Any help appreciated!

-Krip

2

2 Answers

0
votes

You haven't said what OSs are involved, for example those supporting UAC. You also haven't said how this library was registered.

It is very likely that you tried to self-register this thing (for example running regsvr32.exe) and the registration ended up in a virtualized location. Thus it will only be seen as "registered" by a process running under the same user context and subject to virtualization (no manifest declaring it Vista aware).

It could also be registered "per user" in the user's HKCU, but this normally doesn't happen without taking special action.

Even a PDW package would get around this, but an Installer MSI would be better. Just copying things around and running regsvr32.exe on them is not proper deployment.

-1
votes

Start Procmon and see what registry key your app is trying to access. Then go to that key and see where it points.

I am thinking that you simply misspelled the name of the ProgID in your ASP.