加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 如何在ASP.NET应用程序中设置S-MaxAge CacheCont

发布时间:2020-12-16 04:36:57 所属栏目:asp.Net 来源:网络整理
导读:我正在尝试设置ASP.NET资源的可配置性.因此,如果我转到/ foo / show它会显示某个资源的View,并将其缓存几个小时(例如).为此,我使用了OutputCache属性来装饰我的Action方法.可以在web.config文件中找到此缓存的详细信息(针对此操作方法). 当我设置此输出缓存
我正在尝试设置ASP.NET资源的可配置性.因此,如果我转到/ foo / show它会显示某个资源的View,并将其缓存几个小时(例如).为此,我使用了OutputCache属性来装饰我的Action方法.可以在web.config文件中找到此缓存的详细信息(针对此操作方法).

当我设置此输出缓存时,它正确设置最大值..但是s-maxage值是0. WTF?

这是代码……

[Authorize]
[OutputCache(CacheProfile = "SomeController_Show")]
public ActionResult Show(){ ... }

这是配置文件的片段..

<add name="SomeController_Show" duration="3600" varyByParam="authkey;format;blah"  />

以及回复的片段……

Cache-Control:public,max-age=3576,**s-maxage=0**
Content-Length:746
Content-Type:application/json; charset=utf-8
Date:Tue,10 Aug 2010 00:42:17 GMT
Expires:Tue,10 Aug 2010 01:41:53 GMT
Last-Modified:Tue,10 Aug 2010 00:41:53 GMT
Server:Microsoft-IIS/7.0
Vary:*

请注意如何正确设置maxage但是s-maxage不是?有人可以帮助我吗?

解决方法

我找到了答案,[AuthorizeAttribute]将任何maxage清除为零.这意味着,每个缓存都没有代理具有授权的视图结果.

我猜通过url代理缓存内容..所以如果url不包含任何身份验证细节(实际上不应该…… :))..那么它是如何知道哪两个不同的请求是为了同一个人与否?

(我已添加此答案而不是删除,以帮助其他开发人员解决此问题).

同样,类似问题:Can someone explain this block of ASP.NET MVC code to me,please?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读