Archived Forum Post

Index of archived forum posts

Question:

Microsoft VBScript runtime error '800a01ad'

Oct 10 '12 at 10:34

I cannot create an instance of the Chilkat ActiveX in my ASP script:

Microsoft VBScript runtime error '800a01ad'
ActiveX component can't create object
/test/test.asp, line 7


Answer

1) Make sure you know whether your IIS worker processes are running as 32-bit processes or 64-bit processes. Just because IIS is running on a 64-bit server does not mean they are running as 64-bit processes. A 32-bit process must load a 32-bit DLL, and a 64-bit process must load a 64-bit DLL. ActiveX registration simply maps a name in the registry to the location of the file in the filesystem. A 64-bit Windows system has two completely separate registries -- a 32-bit registry and a 64-bit registry. If a 32-bit process calls CreateObject to instantiate an ActiveX, it is looking in the 32-bit registry to find the path of the DLL indicated by the name (such as CreateObject("Chilkat.Xml")). If a 64-bit process calls CreateObject, it is looking in the 64-bit registry.

2) See this Chilkat blog post for detailed instructions about how to register an ActiveX DLL. This applies not only to Chilkat ActiveX's, but to any ActiveX DLL.

http://www.cknotes.com/?p=361

3) If you don't know if your IIS process is 32-bit or 64-bit, then download and register both the 32-bit and 64-bit ActiveX's. This is OK to do because there are separate 32-bit and 64-bit registries.

4) Don't f**k up the ActiveX registration -- meaning, don't register the 64-bit DLL in the 32-bit registry, or the reverse -- the 32-bit DLL in the 64-bit registry.

5) Make sure you're registering the ActiveX DLL's on the web server if your server-side ASP script is to be creating the object instances.