3

DLLをGACに再インストールしようとしていますが、すべて正常に動作しているようですが、それにアクセスするWebアプリケーションはまだ古いものを使用しているようです。

古いDLLは新しいものと同じバージョンですが、わずかな編集が加えられています。50の異なるサイトで使用されるため、バージョンを変更してからweb.configの参照を変更することは適切な解決策ではありません。

IISサーバーまたはワーカープロセスを再起動することはできません。これは、実行を継続する必要のあるサイトがすでに50あるためです。

誰かが私が間違っていること、またはこの状況を改善するために私ができることを知っていますか?

4

2 に答える 2

3

AFAIK、更新されたDLLへの新しい参照を取得するには、IISを再起動する必要があります。最善の策は、トラフィックの少ない時間にリセットを実行することです。負荷分散を使用して複数のサーバーを実行している場合は、すべての接続が閉じられるまで、新しい接続が1つのサーバーに到達するのを防ぐことができます。その後、DLLを更新し、IISを再起動して、サーバーを接続プールに戻します。エンドユーザーに目に見えるダウンタイムがない状態で、サーバーごとに繰り返します。

于 2008-08-25T19:51:47.033 に答える
1

アプリケーションプールを参照していないため、古いバージョンのIISを使用していると想定します。その場合、あなたがする必要があるのは、DLLを参照する各サイトのすべてのDLLに「触れる」ことです。

問題は、コードがすでにロードされており、アプリケーションを再ロードするための邪魔にならない方法を見つける必要があることです。アプリプールのリサイクルは、これを行うための効果的な方法です。app-poolsがない古いIISを使用している場合は、/ bin /フォルダーまたはweb.configファイルで最終変更を更新すると、他のサイトに影響を与えることなくアプリケーションが再ロードされます。

したがって、上記を実行するための何らかのスクリプトが必要です。必要なのは、すべての/binアプリケーションディレクトリにあるDLLの最終変更を更新することだけです。

于 2008-08-25T19:55:22.000 に答える