我有一个运行 .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 中?