次のような WCF Web サービス (Web Api ではない) があります。
public interface ILogsService
{
[OperationContract]
[WebInvoke(UriTemplate = "/Find")]
[Description("-Service description-")]
FindLogsResult FindLogs(LogsFilterRequest request);
}
HTTP キャッシュ ヘッダーをクライアントに送り返すことによってサービス応答をキャッシュする方法 (またはより良い方法) があるかどうかを知りたいです。
私がテストしたところ、これは次を使用して達成できることがわかりました。
HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.Public);
HttpContext.Current.Response.Cache.SetExpires(DateTime.Now.AddSeconds(30));
しかし、可能であれば「よりクリーンな」ソリューションが欲しいです。
このサービスはaspNetCompatibilityEnabled="true"
常に IIS でホストされています。