所以这是一个有趣的问题,我什至不确定从哪里开始研究这个问题。我有一个用 C# 编写的 MVC3 应用程序,其中列出了在线广告。在主页上,它显示了一个包含照片的 10 个最新广告的列表。看看this page在 Chrome 中。在第一页加载时,它加载得很好。现在按F5。它将继续在浏览器选项卡中显示“正在加载”指示器,如果您向下滚动,则不会显示 2 或 3 个广告图片。奇怪的是它总是在页面的同一区域显示图像(可能是第 6、7 或 8 个图像)。它从来不是前几个,也从来不是最后一个。
这只会在 Chrome 中发生,并且只会在您按下 F5 时发生。如果您单击顶部的“Equispot” Logo (会将您重定向到主页),它就可以正常工作。
有没有人知道可能导致此问题的原因或如何解决此问题?
编辑:我想我可能有所进展。 Fiddler 在未显示的图像上指示 500 错误。这是错误:
[Fiddler] 响应 header 解析失败。 这可能是由于先前在此重用服务器套接字上的非法 HTTP 响应引起的——例如,非法包含正文的 HTTP/304 响应。
由于我所有的图像都被缓存了,并且在丢失图像之前有几个 304 响应,这似乎是一个可能的罪魁祸首。不确定如何进行修复,因为这对我来说是陌生的领域。
最佳答案
发现问题。我有一个 FileCache 属性,它向缓存图像的响应中添加了不必要的字节。删除它,问题自行解决, Controller 现在返回 0 字节 304 响应。
关于c# - 非法 304 HTTP 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6641786/