2016-05-10 1 views
0

以前のビルドにロールバックを実行すると、クライアントはブラウザキャッシュに一部のファイルが残っているという問題があるようです。一連のイベントは次のとおりです。C#MVCアプリケーションのロールバックによりキャッシュの問題が発生する

  • 展開
  • が展開するの.htmlファイル用ブラウザのリクエストを行い、最後の2016年1月2日
  • に変更し、同じの.htmlファイルを持っているビルド「B」と古いビルド、最後のイベントのシーケンスの終わりに同じ.htmlのファイル

ため、ブラウザのリクエストを行い2016年1月1日

  • に変更し、同じの.htmlファイルを持っている「A」、クライアントの仲間wserはヘッダーIf-Modified-Since:1/2/2010を使用してリクエストを作成します。このレスポンス304は変更されず、間違ったファイルバージョンが取得されます。

    これは正しいのですか、別の問題に赤ちゃんを探していますか?

  • 答えて

    2

    これは正しい動作です。それはあなたが見ているものです。今すぐすべてを期限切れにするようにIISを変更することができます。次のリンクを参照してください。

    https://technet.microsoft.com/en-us/library/cc770661(v=ws.10).aspx

    これはアズールでホストされている場合は、ツールに行くことができます - (紺碧のポータルで)コンソール>とコマンドプロンプトを開きます。次にtouch <filename>を実行します。これにより、タイムスタンプが更新され、キャッシュが無効になります。

    +0

    返信いただきありがとうございます。ロールバックでこの問題が発生しないように、この動作を変更する最善の方法は何ですか?私は、最後に変更されたヘッダを自分のレスポンスから削除して、304メッセージを送信するためにEtagのみに依存する必要があると思います。あれは正しいですか? 私は特定の状況で自動的にビルドをロールバックするシステムを持っているので、手動での介入はできません(今日の解決策です) – Valchris

    +0

    Etagsを単独で使うことも、すべてのファイルを列挙するpowershellスクリプトを書くこともできますあなたがロールバックするときに "touch"コマンドを実行します。 –

    +0

    Last-Modifiedヘッダーを削除したときに、ブラウザ要求がIf-None-Matchヘッダーを送信したが、サーバーが一致するETag値で応答しましたが、304ではなく200応答でした。何がありますか? – Valchris

    関連する問題