1

.dll 是 C:\Windows\System32 中的 ASPCache_x64.dll(我知道;这个决定是在我之前做出的。)

服务器是运行 Windows 7 的主机上的带有 IIS 7.5 的 Windows Server 2008 R2 VirtualBox VM。有问题的网站是在 .NET Framework 2.0 下运行的经典 ASP 站点。VM 本身是我们用作模板的 VM 的副本,使用该机器副本的其他人没有这个问题。

问题:
在加载任何页面时,我收到以下错误:

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

其他信息:

  • 最终追溯到 Global.asa<object>标签
  • 尝试在从桌面文件夹运行的 VBScript 文件中创建和使用 ASPCache 对象工作正常
  • 尝试在同一域中的测试 ASP 页面上创建和使用 ASPCache 对象给我同样的错误,直到我刷新页面,此时我收到此错误:

(损坏降价的解决方法;忽略此行)

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.

我努力了:

  • 下载 VM 的新副本
  • 确保 IUSR 对 C:\Windows\Systeme32\ASPCache-x64.dll 具有读取和执行权限
  • 使用 regsvr32.exe 取消注册并重新注册 C:\Windows\Systeme32\ASPCache-x64.dll
  • 授予对 ASPCache 和 ASPCache.1 注册表项的 IUSR 读取权限
  • 应用此处找到的修复:经典 ASP 中的 Server.CreateObject 失败
  • 根据我们的共享开发环境检查我能想到的每一个设置,这没有这个问题
  • 每次更改后重新启动 IIS
  • 完成上述所有操作后重新启动计算机
  • 授予单个应用程序池在 C:\Windows\Systeme32\ASPCache-x64.dll 上的读取和执行权限
  • 将默认应用程序池标识更改为 NetworkService
  • 将默认应用程序池标识更改为 [Machine name]\Administrator

几个月来,我一直在谷歌上搜索这个问题。我发现没有任何帮助。


测试asp页面的代码,不起作用:

<%
Dim testCache

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

VB 脚本的代码,它确实有效:

Dim testCache
Set testCache = CreateObject("ASPCache")

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

Global.asa 中的相关代码,给出了原始错误:

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

0 回答 0