gpt4 book ai didi

asp.net-mvc - 如何在ASP.NET应用程序中设置S-MaxAge CacheControl值?

转载 作者:行者123 更新时间:2023-12-04 06:27:55 28 4
gpt4 key购买 nike

我正在尝试设置 ASP.NET 资源的可缓存性。因此,如果我转到/foo/show,它将显示某个资源的View,并将其缓存几个小时(例如)。为此,我使用了装饰我的操作方法的OutputCache属性。该缓存的详细信息(针对此操作方法)可在web.config文件中找到。
设置此输出缓存时,它正确设置了maxage value,但是s-maxage的值为0。为什么?
这是代码:

[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:*
请注意如何正确设置maxmax,但不正确设置s-maxage?

最佳答案

我找到了答案,[AuthorizeAttribute]将所有最大值清除为零。这意味着,没有代理可以每个缓存具有授权的 View 结果。

我猜代理服务器通过url缓存内容。因此,如果url不包含任何身份验证详细信息(这实际上不应该... :))..那么它如何知道哪两个不同的请求是针对是否是同一个人?

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

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

关于asp.net-mvc - 如何在ASP.NET应用程序中设置S-MaxAge CacheControl值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3445298/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com