ASP Classic 3rd Party DLL Registration

53 Views Asked by At

I have inherited a website that has a mix of ASP.Net and ASP Classic. I'm fine with the ASP.Net, but the ASP Classic, I haven't used in at least 20 years (probably longer!)

It took me forever to get the ASP Classic to debug in VS. But I did, finally.

Now, the problem is creating an object in code from a 3rd-party DLL. I'm getting an unhandled exception, on the Server.CreateObject("Caprock.Dictionary") line: "0x80040154 - Class not registered"

The DLL is from a company that no longer exists or supports the particular product in question, as near as I can tell. I actually found a site on the Way Back Machine, was able to download the DLL from that site, along with some instructions from around the year 2000 on how to install it and indicating that it was created for IIS 4.0!

According to the installation instructions, I need to run the following at the command line:

c:> regsvr32 CaprockDCT.dll

I actually ran it with the DLL in the folder in which I copied their files (NOT System32, nor \Inetpub\Scripts, as per below).

The name of the class, that I put in the CreateObject above, is copied straight from their instructions.

The instructions also state that I should copy the DLL into my "\Inetpub\Scripts" folder and register the DLL there. I haven't seen that folder, or if I have, not in many years. I created the folder and copied the DLL there anyway, removed the registry entries from previous attempt, registered the DLL there, rebooted again; same result.

During my investigations, I came across the need, possibly, to use the regsvr32.exe in the \Windows\System\SysWOW64 folder. I originally registered the DLL with the first command line above, then when it didn't work, I removed all registry instances of the DLL (yeah, it's getting registered, at least as far as the registry) and registered it again using the regsvr32.exe in the SysWOW64 folder. No difference in the result.

I rebooted after all attempts.

I've checked the registry entries multiple times, even modified the string of the class name where I'm trying to create the object in the code, to match the case of each letter in the registry, which was different in the original code (although this original code works on the server [running Windows 2016 Server]! The guy from whom I've inherited this code died a couple of years ago and he was the one who installed it on the server, with no notes, of course).

I'm stumped. I've been working on this on and off for a long time. These Classic ASP pages are creating Excel reports (using yet another library, which I don't even know if I'm going to have problems with because I can't get that far in the code yet). Right now I'm having to go back through VB code (yuck!!!) and figure out what is happening by running the code through my head. I have to rewrite these reports in something that is actually still in use/supported and some of them are tearing me up because I can't debug and they are a bit complex.

Any help would be very appreciated!

0

There are 0 best solutions below