views:

3291

answers:

3

I've installed IIS7 on my workstation and enabled IIS6 compatibility so I can test classic asp pages (for some old projects here at work).

Some pages work, but others don't.

I receive:

Serverobject error 'ASP 0177 : 800401f3'

Server.CreateObject failed

/master.central.be/master_connection.asp, line 55

800401f3

On that line i've got:

Set dicTalenLabels = Server.CreateObject("Scripting.Dictionary")

Anybody got some ideas what todo to fix this?

Edit:

As suggested by Michael Pryor, i've ran a vbscript with similar code and it was succesful. So it probably has something todo with permissions. Currently trying to figure out which files exactly...

Do I need to add IUSR to scrrun.dll? When trying, I do not have permission, although i'm a adminstrator.

A: 

0x800401f3 means that the "Scripting.Dictionary" is incorrect or not found. The Scripting.FileSystemObject is provided by the same dll file, and I know that some hosts have disabled this by unregistering the dll file, which would also disable the Dictionary object. Could you check if the Scripting.FileSystemObject works?

Both objects are provided by Windows\System32\scrrun.dll (or Windows\SysWOW64\scrrun.dll if you're executing 32bit on 64bit host). Check the permissions on this file, and verify what privileges your asp script executes as.

Simon Svensson
You're right, Scripting.FileSystemObject also doesn't work. I see users or groups 'System', 'Administrators', 'Users', 'TrustedInstaller' listed, any idea who i should add?
Sander Versluys
@Sander: Could you try executing "regsvr32 scrrun.dll" in an elevated command prompt?
Simon Svensson
I tried registering the dll but did not help, it says "DLLRegisterServer of scrrun.dll succesfully". UAC is disabled. Thanks for the advice btw... More suggestions?
Sander Versluys
@Sander: I have no more suggestions that those from different google results. Check if it's a permissions issue, add your anonymous user (IUSR) to the Administrators group. If it works after that, remove the membership and use Process Monitor to find what files are accessed and where it fails.
Simon Svensson
+1  A: 

Edited: He's running 32 bit vista, so it's definitely not a 64 bit issues.

Make a test.vbs file and put this in it

Dim o: Set o = CreateObject("Scripting.Dictionary")

Then run it like so

cscript.exe test.vbs

Does it give you the same error?

If it does, then the regsvr32 is failing or something is wrong with the registry keys it would normally put in the registry.

If it doesn't fail, it's likely that the user you have running your asp page (by default it is IUSR_machinename) doesn't have permissions on either ther registry keys it needs, or the actual .dll

Michael Pryor
I've tried, but I cannot find the syswow64 directory. I've searched the entire system and regsvr32.exe can only be found under c:\windows\system32. My system is Vista 32bit. Thanks for suggestion btw!
Sander Versluys
edited answer to reflect that you are fully 32 bit
Michael Pryor
aha we're getting there, i think! when running the vbscript it idd does not give an error. Now looking at the asp permissions... Thanks, wish i could vote more...
Sander Versluys
Do I need to add IUSR to scrrun.dll? When trying, I do not have permission, although i'm a adminstrator.
Sander Versluys
"When trying, I do not have permission, although i'm a adminstrator" post a screenshot of what you mean. I don't understand how you can't have permission if you're an admin.
Michael Pryor
Or just use this link: http://www.fogcreek.com/FogBugz/KB/setup/RightAccount.html to set your web app to run under YOUR account instead of IUSR (change "fogbugz username" to your user name when looking at the guide)
Michael Pryor
A: 

Take a look at:

Both the links are from Bill Staples' blog, he's one of the head honchos on the IIS side of things and the tips in the first link sorted me out when I was trying to get Classic ASP up and running.

Rob