我有一个控制器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(内部服务器错误)。没有这个属性,它可以正常工作。
我做错了什么,或者是否有更好的建议我应该用于这种情况?
谢谢!
答案 0 :(得分:2)
如果某人遇到类似问题,我会发现问题所在。我将CacheProfile设置为web.config中不存在的值。我知道我的问题中没有设置该属性,所以...抱歉,如果有任何混淆。