キャッシュしたい JSON を返すコントローラー ActionResult があります。いくつかの調査を行った後、OutputCache 属性がそのトリックを行うことができることを発見しましたが、それをうまく使用することはできませんでした。これを使用しているメソッド呼び出しは次のとおりです。
[OutputCache(Duration = 86400, VaryByParam = "none")]
public ActionResult GetCategories()
{
var request = (HttpWebRequest)WebRequest.Create(EXTERNAL API CALL);
request.Accept = "application/json; charset=utf-8";
var response = (HttpWebResponse)request.GetResponse();
string result;
using (var sr = new StreamReader(response.GetResponseStream()))
{
result = sr.ReadToEnd();
}
return Json(result);
}
このメソッドは、外部ソースへの API 呼び出しを行い、結果を読み取り、結果を json として AJAX 呼び出しに返します。OutputCacheAttribute を配置すると、ajax 呼び出しは 500 (内部サーバー エラー) を返します。この属性がなくても問題なく動作します。
私は何か間違ったことをしていますか、それともこの状況で使用すべきより良い提案はありますか?
ありがとう!