コマンドラインの32ビットスクリプトホストであるSysWOW64\cscript.exeを使用して、Windows Server2008R2で7年前のサードパーティの32ビットCOMコンポーネントを使用するVBScriptスクリプトを実行しようとしています。クラスでCreateObjectを呼び出すと、成功しているように見えますが、オブジェクトでプロパティまたはメソッドを初めて使用しようとすると(いくつかの異なるものを試しました)、「壊滅的な失敗」が発生します。SysWOW64 \ wscript.exeでも同じ結果が得られますが、もちろん、エラーメッセージがコマンドラインウィンドウではなくmsgboxに表示される点が異なります。
これは、次の理由から、特に64ビットスクリプトホストに関係していると思います。
- 同じコンポーネントを呼び出し、同じコードの95%を使用する、同等のクラシックASPスクリプトは、32ビットCOMをサポートするように構成されたIISを使用して、同じサーバーで正しく機能します。
- 同じVBScriptは、32ビットのWindowsXPマシンと32ビットのWindowsServer2003マシンで正しく機能します。
- コンポーネントは、64ビットのWindows7マシンでもまったく同じように失敗します。
この問題の解決策をGoogleで検索したところ、ほとんどの場合、COMコンポーネントをVisualStudioのツールバーに配置することで解決されたさまざまな問題が見つかりました。明らかに、その解決策はここでは適用されません。
私の質問は次のとおりです。
- COMコンポーネントを呼び出すWindowsスクリプトホストからの「壊滅的な障害」の背後に常にあるコアの問題はありますか?
- 構成スナップインまたはレジストリに、「32ビットアプリケーションを有効にする」ためにIISアプリケーションプールに加えた変更と同様の変更を行う必要がある場所はありますか?
- このコンポーネントに固有であることが判明した場合に備えて、障害の詳細がないかどうかを確認するために、Server 2008 R2イベントビューアに確認する必要のある一般的な場所はありますか?
前もって感謝します。