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>