12

最近、ASP.NET MVC Web サイトの一部を、独自のマネージド環境から Azure に移行し始めました。私たちが確認した問題の 1 つは、動的に作成されたコンテンツを配信するときに、クライアント側のキャッシュが適切に機能していないように見えることです。具体的には、コードで HTTP 応答に追加されたキャッシュ関連のヘッダーが削除されます。

たとえば、コンテンツがキャッシュされている可能性があることをクライアントに通知するために、古い環境では次のヘッダーが返されます。

Cache-Control:          public, max-age=31533144
Content-Disposition:    attachment; filename=picture.png
Content-Length:         64326
Content-Type:           image/png
Date:                   Tue, 23 Jul 2013 15:44:57 GMT
Etag:                   "845D3DD630A7AEF5B68EA7A09B670A4D"
Expires:                Fri, 23 Aug 2013 14:57:22 GMT
Last-Modified:          Tue, 23 Jul 2013 14:57:22 GMT
Server:                 Microsoft-IIS/7.5

ただし、Azure では、代わりに次のヘッダーが返されます。

Content-Disposition:    attachment; filename=picture.png
Content-Length:         64326
Content-Type:           image/png
Date:                   Tue, 23 Jul 2013 15:44:57 GMT
Server:                 Microsoft-IIS/8.0
X-Powered-By:           ARR/2.5, ASP.NET

ご覧のとおり、、、Cache-Controlおよびヘッダーは削除されています。EtagExpiresLast-Modified

静的コンテンツのキャッシュに関する多くの提案を見てきましたが、これらがこの場合に役立つとは思いません。Azure CDN の構造がこのようにキャッシュを妨げている場合はありますか? 代わりに Azure BLOB を使用する必要がありますか? 見過ごされている可能性のある基本的な構成の変更はありますか?

前もって感謝します

4

2 に答える 2

1
X-Powered-By:           ARR/2.5, ASP.NET

ARR はアプリケーション リクエスト ルーティングの略です。

inetmgr UI に移動し、サーバー名をクリックすると、[Application Request Routing Cache] オプションが表示されます。

「キャッシュ構成」が表示されるので、そこでオプションを確認します。また、そこで「キャッシュ制御ルール」を確認してください。[ルールを追加...] をクリックして、いろいろ試してみてください。

于 2015-05-11T15:13:34.503 に答える
0

ARR の背後にある Azure Websites サイト。ARR はいくつかの HTTP ヘッダーを破棄し、独自のヘッダーを追加します。これは、ユーザーが直接制御できるものではありません。問題により適しているのは、静的コンテンツに Azure CDN を使用することです。これは、キャッシュ制御ヘッダーに注意して使用します。BLOB ストレージ コンテナー上で CDN を実行できます。

于 2015-07-01T20:37:12.073 に答える