2011-01-28 13 views
0

Environementをリセットせずに、ファイルを使用:2.0 .NETは、Windows Server 2005編集は、IIS

は私が問題を抱えている:私は私のXMLファイルのいずれかが常にで開かれ、多くのトラフィックを持っているウェブサイトを持っていますdocument(...)関数(xsltテンプレート内)。

So:サーバーをリセットせずにこのXMLファイルを更新するにはどうすればよいですか?あるいは、ドキュメント(...)関数にキャッシュストラテジを適用して、必要なときにファイルをロードせず、ファイルを変更したときにキャッシュを更新する方法もあります。

おかげ

レミ

+0

コピーを作成してコピーを更新し、スクリプトが新しいコピーを指すようにポイントし、使用しているものが何か終了したら元のコピーを削除しますか? –

+0

ファイルは常に使用されています。トラフィックが多いWebサイトがあるため、使用されていない期間は見つかりません。 –

答えて

0

最も簡単な方法は、アプリケーションがメモリにファイルの内容をロードし、ファイルのロックを解除持っているだろう。

ステージ2は、ファイルを保存し、キャッシュされたオブジェクトを破棄し、最新のバージョンを使用できるように、同じアプリケーションで編集することです。

ステージ1を実装するだけで、メモリ内のバージョンが一定間隔で期限切れになるため、ファイルの競合が減りますが、ファイルがロックされている間にファイルを読み取る可能性があります。外部の編集プロセスとその逆 - あなたがファイルを保持している場合よりもはるかに小さなチャンスです。これを改善するには、FileInfoを読み込み、読み込んだ後に変更されているかどうかを確認します.FileInfoを読むことでメモリ内のバージョンが破壊されないようにする必要があります。

+0

私が言ったように、ウェブサイトでは、ストリームを経由せずにxpath document()関数を介してファイルを開くので、ここでキャッチ戦略を適用することはできません。多分方法がありますが、私はどちらがわからないのでしょうか。 –

関連する問題