[英]WCF OperationContract is 304 in IE (7-9) but not Firefox or Chrome
我有一台运行.net 4.0的IIS 6服务器,对于IE,它返回304(未修改),但是对于Firefox或Chrome,却没有。 我从不希望缓存.svc文件中的此调用和其他调用进行缓存,但始终希望它是200个新数据。 我没有在运行IIS7.5的Win7上的localhost上看到此消息。 响应标头具有Cache-Content:专用,并且在IIS 6下运行时,Fiddler甚至不显示请求。
[OperationContract]
[WebGet(UriTemplate = "usertoken/populate")]
public ClientUserToken PopulateUserToken()
{
return HttpContext.Current.Session["userToken"] as UserToken;
}
我可以为每个方法添加[AspNetCacheProfile(“ NoCachingProfile”)]
<outputCacheSettings>
<outputCacheProfiles>
<add name="NoCachingProfile" noStore="true" duration="0" varyByParam="none" enabled="false"/>
</outputCacheProfiles>
</outputCacheSettings>
到web.config,但我想避免不必将此添加到每个操作中。 是否有IIS设置可以执行此操作,还是应该由代码驱动? 为什么只在IE中发生?
这不是服务的问题,而是IE。 Fiddler没有显示任何内容,因为浏览器未发送任何内容,它使用的是上次缓存的响应。 如果可以,请使用Post,否则使每个Get请求看起来都不同: url: "usertoken/populate?" + new Date().getTime()
url: "usertoken/populate?" + new Date().getTime()
较旧的IE不利于使用Gets忽略无缓存
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.