首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WCF OperationContract在IE (7-9)中是304,但不是火狐或Chrome

WCF OperationContract在IE (7-9)中是304,但不是火狐或Chrome
EN

Stack Overflow用户
提问于 2012-05-22 00:51:40
回答 1查看 491关注 0票数 2

我有一个运行.net 4.0的IIS6服务器,它为IE返回304 (未修改),但不返回火狐或Chrome。我永远不希望在保存.svc文件时调用这个函数和其他函数缓存,而是始终使用200和新数据。我在运行IIS7.5的Win7上的本地主机上看不到这一点。响应头有一个Cache-Content: private,当在IIS6下运行时,Fiddler甚至不会显示请求。

代码语言:javascript
复制
[OperationContract]
[WebGet(UriTemplate = "usertoken/populate")]
public ClientUserToken PopulateUserToken()
{
  return HttpContext.Current.Session["userToken"] as UserToken;
}

我可以为每个方法添加一个AspNetCacheProfile("NoCachingProfile"),然后

代码语言:javascript
复制
<outputCacheSettings>
    <outputCacheProfiles>
        <add name="NoCachingProfile" noStore="true" duration="0" varyByParam="none" enabled="false"/>
    </outputCacheProfiles>
</outputCacheSettings>

添加到web.config中,但我希望避免在每个操作中都添加此内容。是否有IIS设置来执行此操作,或者是否应由代码驱动?为什么它只在IE中发生?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-31 01:34:03

这不是服务的问题,是IE的问题。Fiddler没有显示任何内容,因为浏览器没有发送任何内容,它使用的是最后一个缓存的响应。如果可以,使用Post,否则让每个Get请求看起来不同,就像:url: "usertoken/populate?" + new Date().getTime()旧的IE很糟糕,忽略了Get的无缓存

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10689303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档