DDD888 发表于 29-8-2014 10:07:17

asp.net OutputCache 问题

如何可以不cache null啊?

mason00 发表于 29-8-2014 10:19:24

具体点。刚用cache吗?问题不对路

DDD888 发表于 29-8-2014 11:53:28

我要返回FileResult

      <AcceptVerbs(HttpVerbs.Get)>
      <OutputCache(Duration:=90000, VaryByParam:="id;extension", Location:=OutputCacheLocation.Any)>
      Function GetTestImage(ByVal id As String, ByVal extension As String) As FileResult
                Return Hello.GetImage(id, extension)
      End Function

如果Hello.GetImage在9:00am没有读到文件,返回null,但可能文件在10:00am存在,我不要OutputCache保存null,但我又不想Duration设的很小,例如两分钟,因为我想一旦cache了,就不要再从磁盘里读了

DDD888 发表于 29-8-2014 12:13:02

我现在的做法是将OutputCacheAttribute.cs复制成自己的class,加一行检测null

mason00 发表于 29-8-2014 13:29:35

本帖最后由 mason00 于 29-8-2014 13:31 编辑

DDD888 发表于 29-8-2014 12:13
我现在的做法是将OutputCacheAttribute.cs复制成自己的class,加一行检测null

null就是没有cache啊,什么也没保存。直到10:00,文件有了,才会cache下来,不用读磁盘了之后。之后每900000后会去刷新cache,如果文件又没了,返回null,有就cache最新读到的文件。

DDD888 发表于 29-8-2014 13:37:19

mason00 发表于 29-8-2014 13:29
null就是没有cache啊,什么也没保存。直到10:00,文件有了,才会cache下来,不用读磁盘了之后。之后每 ...

问题是这个null cache给所有其他request共享了

mason00 发表于 29-8-2014 13:38:59

DDD888 发表于 29-8-2014 13:37
问题是这个null cache给所有其他request共享了

那是肯定啊,要不就不是cache了。所以什么东西要cache是个选择。后面各种vary的参数很讲究的。

DDD888 发表于 29-8-2014 14:20:15

mason00 发表于 29-8-2014 13:38
那是肯定啊,要不就不是cache了。所以什么东西要cache是个选择。后面各种vary的参数很讲究的。

我现在决定不用OutputCache,我自己控制cache

DDD888 发表于 31-8-2014 14:21:46

DDD888 发表于 29-8-2014 13:37
问题是这个null cache给所有其他request共享了

我的想法是错误的,NULL不被ASP.NET CACHE,但返回NULL的结果被这个CLIENT的BROWSER CACHE,所以我的解决方案是如果是NULL,告诉CLIENT的BROWSER 不CACHE,非NULL的话,CACHE 24小时。
页: [1]
查看完整版本: asp.net OutputCache 问题