我有一台运行.net 4.0的IIS 6服务器,它为IE返回304(未修改),但不支持Firefox或Chrome。我从不希望保存.svc文件中的此调用和其他调用进行缓存,但始终为200和新数据。我没有在运行IIS7.5的Win7上的localhost上看到这个。 响应头具有Cache-Content:private,当在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?
答案 0 :(得分:0)
这不是服务的问题,而是IE。 Fiddler没有显示任何内容,因为浏览器没有发送任何内容,它使用的是最后一个缓存的响应。如果可以,请使用Post,否则使每个Get请求看起来不同,如:
url: "usertoken/populate?" + new Date().getTime()
使用获取