Я читаю некоторые реестры в ASP Classic, чтобы получить некоторые значения, которые мне нужны, и сохранить их как переменные уровня приложения. В файле global.asa У меня есть код:ASP Classic WshShell.RegRead error '80070002'
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Application_OnStart
Application("test") = "testing..."
Dim WSHShell, regLink
Set WSHShell = CreateObject("WScript.Shell")
regLink = "HKEY_LOCAL_MACHINE\SOFTWARE\Odyssey\"
Application("test2") = WSHShell.RegRead(regLink & "value")
End Sub
</SCRIPT>
В моем test.asp файл, я просто вывести «тест» и «test2» переменных. Тем не менее, на управлении test.asp, я получаю сообщение об ошибке:
WshShell.RegRead ошибка «80070002»
Неверный корень в реестре ключа
Я проверил и дважды проверил, что ключ действительно существует, и этот код работал на нашем старом сервере, поэтому я думаю, что это проблема конфигурации в IIS. Я буду проклят, если найду его. ASP Classic установлен и включен, и я использую IIS 7.5 для Windows Server 2008 R2 x64. Надеюсь, у кого-то есть представление о том, в чем проблема.
EDIT: Я скачал Process Monitor, чтобы посмотреть доступ к реестру. После некоторых поисков. Я обнаружил, что он действительно ищет ключ в «HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Odyssey \ value». Я понимаю, что это связано с тем, что сервер 64x. Я не хочу переместить ключи в это место, поскольку они, скорее всего, никогда не будут найдены снова, особенно когда код указывает на другой каталог.
Есть ли способ остановить это перенаправление или изменить структуру, чтобы это могло работать?
Заранее за вашу помощь.
Doug
Обновленный вопрос с некоторыми новыми деталями, найденными в Process Monitor. – Doug
Спасибо за обновление вашего сообщения. Возможно, вам удастся опубликовать ваш вопрос (или фактически найти ответ) здесь: http://serverfault.com/ – dcaswell