It is always necessary to upgrade some old ASP systems to ASP. NET. Currently, ASP and ASP. NET must be integrated into a project for various reasons. Since the Development machine is 64-bit Windows 7, it is naturally equipped with 64-bit IIS. After registering the COM component of the old system, run ASP on IISCodeWhen the COM component object is created, the following error occurs:
Microsoft VBScript runtime error '800a01ad'
ActiveX component can't create object
After some exploration, using the powerful process monitor tool to monitor w3wp.exe operations, it found that it tried to find COM component information in a path similar to hkcr \ CLSID \, but because COM is 32-bit, therefore, it is registered to a location such as hkey_classes_root \ wow6432node \ CLSID \. when looking for a location such as hkcr \ wow6432node \ CLSID \, you should find it.
So how can I find the correct com location for IIS? The solution is to make IIS work in 32-Bit mode. The specific method is to find the app pool used by the website, and then select "Advanced Settings ", set "enable 32-bit applications" to true. After the settings, monitor w3wp and find that the COM registration information has been found under hkcr \ wow6432node \ CLSID, so the problem can be solved.