Asp.net mvc 4 IIS以304 HTTP状态响应非条件请求

Asp.net mvc 4 IIS以304 HTTP状态响应非条件请求,asp.net-mvc-4,iis-7.5,outputcache,http-status-code-304,Asp.net Mvc 4,Iis 7.5,Outputcache,Http Status Code 304,有时,我的IIS服务器开始以304 HTTP状态响应非条件请求。我还没有确定这是什么时候发生的,但是当它启动时,所有的浏览器都会得到304 这是请求(使用fiddler调试): 答复如下: HTTP/1.1 304 Not Modified Cache-Control: public Expires: Thu, 30 Apr 2015 09:23:22 GMT Last-Modified: Wed, 30 Apr 2014 09:23:22 GMT Server: Microsoft-IIS/7

有时,我的IIS服务器开始以304 HTTP状态响应非条件请求。我还没有确定这是什么时候发生的,但是当它启动时,所有的浏览器都会得到304

这是请求(使用fiddler调试):

答复如下:

HTTP/1.1 304 Not Modified
Cache-Control: public
Expires: Thu, 30 Apr 2015 09:23:22 GMT
Last-Modified: Wed, 30 Apr 2014 09:23:22 GMT
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Wed, 30 Apr 2014 10:33:58 GMT
ASP.NET MVC方法如下所示:

[HttpGet]
[OutputCache(Duration = int.MaxValue, VaryByParam = "")]
public string GetStaticResult()
{
    return "static";
}
自(或类似)标头以来,请求没有任何If修改。服务器不应该发出200响应吗


可能与

有关你明白了吗?对不起,我没有。我们删除了MVC方法,因为它不再是必需的。我不确定这是否相关,但当我在你的帖子上发表评论时,我正在研究一个类似的问题。结果是http.sys内核缓存失败。最后缓存了304个响应,并使用netshhttpshowcachestate进行了验证。这似乎是由于IE以某种方式发送了某个标题造成的。(我相信它是带有q值的Accept头之一)。只有IE浏览器的强制刷新才能将缓存修复回200。通过为盒式磁带捆绑提供的有问题的静态资产添加查询字符串?n来解决此问题。。
[HttpGet]
[OutputCache(Duration = int.MaxValue, VaryByParam = "")]
public string GetStaticResult()
{
    return "static";
}