1

我有一个控制器 ActionResult,它返回我想要缓存的 JSON。经过一番研究,我发现 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

如果有人有类似的问题,我想出了问题。我将 CacheProfile 设置为 web.config 中不存在的值。我知道我的问题中没有设置该属性,所以...抱歉,如果有任何混淆。

于 2011-10-14T16:12:18.857 回答