0

IIS 6.0 サーバーで機能する同じコードが IIS 5.1 サーバーで失敗する原因となる、欠落または誤った設定は何ですか?

この大規模なクラシック ASP アプリケーションを継承しました。ExecuteGlobal コマンドを使用して、関数を含む一連のファイルを「キャッシュ」します。両方のサーバーで、コマンドはエラーなしで実行されます。ただし、後でアプリケーションが「キャッシュ」された関数を参照しようとすると、IIS 6.0 は正常に動作しているように見えますが、IIS 5.1 はそれらの関数が存在しなかったかのように動作し、その影響でエラーが発生します。

5.1 システムは、XP Pro ボックスでのテスト用です。6.0 は、Windows 2003 の本番システムです。

問題 (テストでは失敗するが実稼働環境では動作する同一のコード) をこのコードに切り分けるのに長い時間がかかりました。残念ながら、別のサーバーをセットアップすることはオプションではありません (予算の制約 - サポート担当者に支払うお金や、すべてのサーバーを物理的に配置する必要があるスペースを借りるお金がない - 軍事施設)。

見落としていた方向は?

4

2 に答える 2

0

「キャッシュ」と「キャッシュされた関数の使用」は、同じ HTTP リクエストの処理中に発生しますか?

答えが「はい」の場合、私には何のアイデアもありません。他の誰かがあなたの質問に答えてくれることを心から願っています。

答えが「いいえ」の場合、関数を別の VBScript 実行コンテキストに「キャッシュ」することが問題であると確信しています。

(もちろん、テスト サーバー上で試してください :-) 関数を定義するファイルに次の 2 行を追加してみてください。

Dim g_FunctionsLoadedOK
g_FunctionsLoadedOK = "OK"

関数を使用する直前に次の行を追加します。

if( Eval( "VarType(g_FunctionsLoadedOK)" ) <> vbString then
    ' Then you're sure there's no 'g_FunctionsLoadedOK' string variable defined in this VBScript execution context,
    ' so maybe you should reload the cached functions, or do something else..
end if

PSあなたが扱っているシステムが本当に大規模でない限り、その「ExecuteGlobal」アプローチの代わりに <!-- #include file="MyFile.inc" --> を使用してみませんか?

于 2009-10-30T21:22:46.230 に答える
0

偽の ExecuteGlobal のもののコードを投稿できますか?何かを壊す必要がないように、Includes を使用して必要なことを実行するようにリファクタリングすることが可能かもしれません。少しの検索と置換が必要になる可能性があることに失敗しました:)

于 2009-11-02T17:53:50.413 に答える