2

我有一个 MVC3 应用程序。我有一个动作 Action1,它通过 重定向到另一个动作 Action2 RedirectToAction。这会导致 HTTP 302 响应。响应似乎被缓存在某处,因为对 Action1 的后续调用从未命中服务器。我尝试了以下方法:

  1. 将 Web.config 中的输出缓存设置为禁用。
  2. 清除了我的浏览器(Chrome 和 IE9)缓存。
  3. 将随机数附加到 Action1 的请求中。
  4. 更改了 Action1 的操作以查看它是否会触发缓存死机。
  5. 禁用了我的网络连接,认为我的本地主机请求以某种方式被缓存在路由器或其他东西中。

不管我做什么,似乎在某处仍然存在着一层缓存。我在笔记本电脑上本地运行 IIS 7.5 中的应用程序。我正在从同一台机器上访问它。我唯一的最终想法是 IIS 正在某处缓存重定向 - 但我无法弄清楚它可能在哪里。唯一值得一提的是,我通过动态创建表单并使用 jQuery 提交来发布请求。

以下是我请求 Action1 时的请求标头:

POST /Test/Action1
Host: localhost
Connection: keep-alive
Content-Length: 36
Cache-Control: max-age=0
Origin: http://localhost
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://localhost/Test
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: CartID=2637139; ASP.NET_SessionId=njto1i55dsbfsib5x2vpin55; siteuidut=6750fc9eda6c479db11ce10328a595ec; UserID=1; .ASPXAUTH=0:6172Tz9ggmhlHKcOJE+Jmg==

以下是响应标头:

HTTP/1.1 302 Found
Cache-Control: private, s-maxage=0
Content-Type: text/html; charset=utf-8
Location: /Test/Action2
Server: Microsoft-IIS/7.5
X-AspNetMvc-Version: 3.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Fri, 20 Jul 2012 00:42:59 GMT
Content-Length: 140
4

0 回答 0