Ошибка при попытке создать объект сервера в Classic ASP
.Dll - это ASPCache_x64.dll в C:\Windows\System32 (я знаю; это решение было принято раньше моего времени).
Сервер - это виртуальная машина VirtualBox с ОС Windows Server 2008 R2 с IIS 7.5 на хосте под управлением Windows 7. Рассматриваемый веб-сайт - это классический сайт ASP, работающий под.NET Framework 2.0. Сама виртуальная машина является копией виртуальной машины, которую мы используем в качестве шаблона, и никто другой, использующий копию этой машины, не сталкивается с этой проблемой.
Эта проблема:
При загрузке любой страницы я получаю следующую ошибку:
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>
тег - попытка создать и использовать объект ASPCache в файле VBScript, запущенном из папки рабочего стола, работает нормально
- попытка создать и использовать объект ASPCache на тестовой странице ASP в том же домене приводит к одной и той же ошибке, пока я не обновлю страницу, после чего я получаю эту ошибку:
(обходной путь для сломанной уценки; игнорируйте эту строку)
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.
Я пытался:
- загрузка свежей копии виртуальной машины
- убедившись, что IUSR имеет права на чтение и выполнение для C:\Windows\Systeme32\ASPCache-x64.dll
- отменить регистрацию и перерегистрацию C:\Windows\Systeme32\ASPCache-x64.dll с помощью regsvr32.exe
- предоставление разрешения на чтение IUSR для разделов реестра ASPCache и ASPCache.1
- применяя найденное здесь исправление: Server.CreateObject Failed в Classic ASP
- проверяя каждую настройку, которую я могу придумать, в нашей общей среде разработки, у которой нет этой проблемы
- перезапуск IIS после каждого изменения
- перезагрузка компьютера после всего вышеперечисленного
- предоставление отдельным пулам приложений разрешений на чтение и выполнение для C:\Windows\Systeme32\ASPCache-x64.dll
- изменение идентификатора пула приложений по умолчанию на NetworkService
- изменение идентификатора пула приложений по умолчанию на [Имя компьютера]\ Администратор
Я гуглил эту проблему в течение нескольких месяцев. Ничто, что я нашел, не помогло.
Код для тестовой страницы 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>