Error when trying to create a server object in Classic ASP

971 Views Asked by At

The .dll is ASPCache_x64.dll, in C:\Windows\System32 (I know; this decision was made before my time.)

The server is a Windows Server 2008 R2 VirtualBox VM with IIS 7.5, on a host running Windows 7. The website in question is a classic ASP site running under .NET Framework 2.0. The VM itself is a copy of a VM we use as a template, and no one else using a copy of that machine is having this problem.

The problem:
On loading any page, I get the following error:

ERROR IN PROCESSING: ?
ASP Code:
Number: 0
Source:
Line
Number: 0
Description: Create object failed
ASP Description: An error occurred while creating object 'myCache'. 

Other information:

  • eventually traced to Global.asa <object> tag
  • attempting to create and use an ASPCache object in a VBScript file run from a desktop folder works fine
  • attempting to create and use an ASPCache object on a test ASP page in the same domain gives me the same error until I refresh the page, at which point I get this error:

(workaround for broken markdown; ignore this line)

ERROR IN PROCESSING: /test_createobject.asp
ASP Code:
Number: -2146959359 
Source: 
Line Number: 4 
Description: Cannot create ASPCache object - a required component is missing. Please reinstall your software.

I have tried:

  • downloading a fresh copy of the VM
  • making sure IUSR has read and execute permissions on C:\Windows\Systeme32\ASPCache-x64.dll
  • de-registering and re-registering C:\Windows\Systeme32\ASPCache-x64.dll with regsvr32.exe
  • granting IUSR read permission on the ASPCache and ASPCache.1 registry keys
  • applying the fix found here: Server.CreateObject Failed in Classic ASP
  • checking every setting I can think of against our shared dev environment, which doesn't have this problem
  • restarting IIS after every change
  • restarting the computer after all of the above
  • granting individual app pools read and execute permissions on C:\Windows\Systeme32\ASPCache-x64.dll
  • changing the default application pool identity to NetworkService
  • changing the default application pool identity to [Machine name]\Administrator

I've been Googling this problem on and off for months. Nothing I've found has helped.


Code for the test asp page, which doesn't work:

<%
Dim testCache

Set testCache = Server.CreateObject("ASPCache")
testCache("Marco") = "Polo"
Response.Write testCache("Marco")
%>

Code for the VB Script, which does work:

Dim testCache
Set testCache = CreateObject("ASPCache")

testCache("Marco") = "Polo"
WScript.echo o("Marco")

Relevant code in Global.asa, which gives the original error:

<OBJECT RUNAT=Server SCOPE=Application ID=TestCache PROGID=ASPCache></OBJECT>
0

There are 0 best solutions below