最近、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
およびヘッダーは削除されています。Etag
Expires
Last-Modified
静的コンテンツのキャッシュに関する多くの提案を見てきましたが、これらがこの場合に役立つとは思いません。Azure CDN の構造がこのようにキャッシュを妨げている場合はありますか? 代わりに Azure BLOB を使用する必要がありますか? 見過ごされている可能性のある基本的な構成の変更はありますか?
前もって感謝します