6

私のxapが半日ごとに(約)期限切れになる原因は何だろうと思っています。つまり、午前中にユーザーが Web サイトにアクセスして xap のコピーをダウンロードし、そのユーザーが Web サイトに戻って Web サイトが xap の別のコピーをダウンロードした場合、午後までに xap のコピーをダウンロードするということです。

ユーザーが xap の新しいコピーをダウンロードする必要がある唯一の理由は、ブラウザーのキャッシュをクリアしたときか、サーバーに新しいコピーを置いたときだけだと思います。

何が問題であり、修正されるかについてのアイデアはありますか?

XAP ダウンロードで fiddler を実行し、fiddler の xap ダウンロード エントリのキャッシュ タブから次の行を取得しました。

Expires、Pragma、または Cache-Control ヘッダーが存在し、キャッシュが禁止されていない限り、HTTP/200 応答はデフォルトでキャッシュ可能です。


HTTP/1.1 ETAG ヘッダーが存在する: "2ad1d6bfdd43cb1:0" HTTP Last-Modified ヘッダーが存在する: Tue, 24 Aug 2010 22:43:19 GMT

明示的な HTTP 有効期限情報が提供されませんでした。ほとんどのブラウザーはヒューリスティックな有効期限ポリシーを利用しています。Last-Modified と Date の間のデルタの 10% は「02:53:34」であるため、この応答はヒューリスティックに 26/08/2010 4:39:26 PM に期限切れになります。


これが問題なのだろうか?明示的な HTTP 有効期限はどこで設定できますか?

4

3 に答える 3

2

最初に行うことは次のとおりです。

  • Fiddlerのコピーをインストールします。
  • インターネット一時ファイルを削除します。
  • フィドラーを実行します。
  • ホスト Web ページにアクセスします。
  • Xap ダウンロードを表す HTTP セッションを fiddler で見つけます。
  • 上記の質問に未加工の応答ヘッダーを追加します。

これにより、実際の問題が何であるかを知るための非常に重要な手がかりが得られます。

リフレッシュするとどうなる?2 番目の XAP HTTP セッションがステータス 304 応答を返しているのがわかりますか? 200 を取得した場合は、 この 2 回目の試行の生のリクエストヘッダーその生の応答ヘッダーを質問に追加します。

304 が表示された場合は、適切な時間放置してから再試行してください。それでもステータスは 304 になりますか? そうでない場合は、上記と同じことを行います。

このデータは、診断を提供するための多くの情報を提供してくれます。

于 2010-08-25T11:55:01.480 に答える
0

If you're using ASP.Net (can you edit your post to let us know what your backend is?), try using Response.Cache.SetCacheability. There are some gotchas, tho.

于 2010-09-16T23:39:45.600 に答える
0

HiTech Magic が示唆していたのは、IIS でこの設定を調整できるようにする必要があるということだったと思います。Fiddlerが言ったことから、IISにはコンテンツの有効期限が設定されていないようです。これがデフォルトだと思います。

IIS 6 でそれを行う方法は次のとおりです 。 IIS 7 で: h'ttp://technet.microsoft.com/en-us/library/cc770661(WS.10).aspx

于 2010-09-16T20:38:31.963 に答える