1

キャッシュしたい 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 (内部サーバー エラー) を返します。この属性がなくても問題なく動作します。

私は何か間違ったことをしていますか、それともこの状況で使用すべきより良い提案はありますか?

ありがとう!

4

1 に答える 1

2

誰かが同様の問題を抱えている場合に備えて、私は問題を理解しました。web.config に存在しない値に CacheProfile を設定しました。質問にその属性が設定されていなかったことはわかっているので、混乱があった場合は申し訳ありません。

于 2011-10-14T16:12:18.857 に答える