ISS で MVC3 Web サイトを実行しています。データベースから画像を取得するコントローラーがあります。実際にどの画像が取得されるかは、リクエストのホスト名に基づいて決定されます。URL は IIS の同じアプリケーションを参照します。
これは、キャッシュが有効になるまで正常に機能します。次のコードを使用して、サーバーとクライアントの両方でキャッシュを許可しました。
Response.Cache.SetExpires(DateTime.Now.AddHours(1));
Response.Cache.SetCacheability(System.Web.HttpCacheability.Public);
これにより、IIS は応答をキャッシュします。これはまさに私たちが見たいものです。ただし、IIS はキャッシュ時に異なるホスト名を区別していないようです。最初にhttp://hostA.site.com/image/23を取得すると、その後http://hostB.site.com/image/23を呼び出すと、IIS は前の要求からキャッシュされた画像を返します。これは、IIS が同じサイトと同じ URI を持っているため、これらの要求が同じであると見なすためだと思います。
ホストごとに異なるアプリケーションを作成することなく、これを機能させる方法を知っている人はいますか? 今のところ、Private の Cacheability を設定しましたが、IIS にこれらの画像をキャッシュさせたいと思っています。