IIS 7 and Above
VBScript runtime error '800a01ad' ActiveX component can't create obje...
Last post Oct 05, 2011 08:45 AM by gmaran23
Apr 03, 2011 04:26 PM|gmaran23|LINK
Okay fellow memebers, Here's my problem.
I wrote a DLL in C#, exposes it to a Classic ASP page via COM. For instance, if the name of my dll is RUtility.dll (name of the code file RUtility.cs).
Step - 1: I do is I use like this...
C:\Windows\Microsoft.NET\Framework\v1.0.3705>gacutil -i C:\inetpub\wwwroot\somefolder\someotherfolder\RUtility.dll
Step - 2:
C:\Windows\Microsoft.NET\Framework\v2.0.50727>regasm /tlb /codebase C:\inetpub\wwwroot\somefolder\someotherfolder\RUtility.dll
I host the webpage named ClassicASPDemo.asp (written using VBScript) in IIS 7.
The file ClassicASPDemo.asp is under the folder C:\inetpub\wwwroot\somefolder\someotherfolder\. the same folder that has RUtility.dll and Rutility.tlb. It works like a charm when I call any method inside the DLL after creating an object with Set myObj =
Server.CreateObject("RUtility.TestClass") ... myObj.Callme().
Thats works great. I did the same steps on three Win Vista Enterprise 32 bit machines and a 32 bit Win XP pro machine.
Now, my task is to deploy this on a Win Server 2008 R2 64 bit. To do gacutil and regasm in the 64 bit server machine, I use the Cmd Shell that comes with the Windows SDK V6.1.
gacutil adds it to the assembly. regasm exports the types and registers it. So far so good.
When I call the ClassicASPDemo.asp page. I get an error saying
"Microsoft VBScript runtime error '800a01ad'
ActiveX component can't create object "
I have no clue what the problem is. I did the same thing that I followed in Win Vista Ent and win XP 32 bit machines. What am I missing in the Win server 2008 R2 64 bit? [I tried compiling the dll with AnyCPU mode and X64, nothing worked] . Any instant help,
suggestions are appreciated. I am in msdn, I am pretty sure, that I'b be fixing it with the help.
Related Posts below: (updated)
Apr 03, 2011 08:08 PM|HCamper|LINK
Have you seen this MIcrosoft Support
the suggestions and aditional links may be of help.
I suggest that you make sure the IUSR,IIS_USERS are part of the IIS Server and Web Site and have read,execute,list
permissions to allo execution of the ASP net code.
I suggest you check that the Runtimes:
Visual Studio 2005 + Visual Studio 2005 SP1 + Visual Studio 2008 + Visual Studio 2008 SP1 for X86 & X64 are installed
and have any patches or updates.
You can get the Runtimes from the Microsoft Download Center.
You can run the Dependency Walker tool as suggested in the Support Topic to find any other
required runtimes or shared libaries.
I hope this helps,
Apr 04, 2011 09:31 AM|gmaran23|LINK
Hey, thanks for that one Martin :)
But did you get a change to look at my post at connect.microsoft.com here
I have a two workarounds to overcome this issue, but I dont quite understand if this behaviour is a reported bug or a functionality by design. To mention again, I create a C# .Net dll (assembly) built target as Any CPU and I
regasm it in the Windows server 2008 R2 64 bit. The Classic ASP page would not work because of this error.
Please read my work around here..
Sep 19, 2011 01:39 PM|Maharaj|LINK
I am having the same issue. It will be nice if I can see your solution to the problem. but your link when clicked gives page not found error.
Sep 19, 2011 02:03 PM|HCamper|LINK
Hi @ Maharaj ,
Yes, Your correct the link is bad and will give errors.
You should visit the Microsoft Connect Main Web Page and check the Feedback section.
Sep 23, 2011 06:08 AM|gmaran23|LINK
I dont know the link still works for me.
I guess this is a problem with the x64 and x86 processing modes.
If your COM is built specifically for 32 bit architechture, then you might need to register the COM on the HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\TypeLib\ as well.
If that sounds a little complicated to you, then register the COM as a COM+. That takes care of it automatically.
1. Start--> run --> comexp.msc
2. Create an empty server application (COM+)
3. Add your component to the COM+ that was created. Thats it.
Coupe of settings you might wanna tweak,
1. Properties --> Security tab --> Uncheck 'Enforce Access checks for this application'
2. Properties --> Identity --> Set it to Local Service or Network Service or any account that works for you.
3. Properties --> Activation --> Server Application
Individual COM settings, Properties --> Advanced --> Allow IIS intrinsic properties
Oct 03, 2011 11:00 AM|webRonin|LINK
"Add your component to the COM+ created"
I'm new to this utility and I don't see an option to add a component to the COM+ I just created...
How do I do that?
Oct 05, 2011 08:45 AM|gmaran23|LINK
Start --> Run --> comexp.msc
Navigate to Console Root - Componet Services - Computers - My Computer - COM+ Applications.
Right click on 'COM+ Applications' And create New Application.
Follow the wizard carefully. Hit Next. Create an Empty Application. Name it (mycomapp1 for instance). Mak sure Server application radio box is selcted. Pick the user account based on the requirement. Hit Next,. Next. Finish.
Now you have created a COM+ application named mycomapp1.
Now, You need to add individual COM components to it.
Expant mycomapp1 from the list. Right click on Components. Pick New Componet.
Hit Next in the wizard. This next wizard screen is up to you. I would pick 'Install New componets' if I havent run a regsvr32 or regasm on it. Pick the told or the dll (containing the tlb) file. And go ahead.. Thats how you do it.
I am sure there are many articles over the internet explaining this process. If you dont find one. The prcess is pretty straight forward.
COM+ dll registration