ASP Classic でいくつかのレジストリを読み取って、必要な値を取得し、それらをアプリケーション レベルの変数として保存しています。global.asa ファイルには、次のコードがあります。
<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 ファイルでは、"test" 変数と "test2" 変数を出力するだけです。ただし、test.asp を実行すると、次のエラー メッセージが表示されます。
WshShell.RegRead エラー '80070002'
Invalid root in registry key
キーが実際に存在することを確認し、再確認しました。このコードは古いサーバーで機能したため、IIS の構成の問題だと思います。見つかったら大変だけど。ASP Classic をインストールして有効にし、Windows Server 2008 R2 x64 で IIS 7.5 を使用しています。うまくいけば、誰かが問題が何であるかを理解しています。
編集:プロセスモニターをダウンロードして、レジストリアクセスを確認しました。いくつかの検索の後。実際には「HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Odyssey\value」でキーを探していることがわかりました。これは、サーバーが 64x であることと関係があると思います。特にコードが別のディレクトリを指している場合は、二度と見つからない可能性が高いため、キーをその場所に移動したくありません。
このリダイレクトを停止するか、構造を変更してこれが機能するようにする方法はありますか?
よろしくお願いします。
ダグ