是什么原因呢,有时好,有时就这样。。。。。。。。。。
这个是一个ashx页面,我的ProcessRequest()中加入如下代码,不知道是不是这个原因:
//默认缓存的秒数 int secondsTime = 60 * 60; var request = context.Request; var response = context.Response; //判断最后修改时间是否在要求的时间内 //如果服务器端的文件没有被修改过,则返回状态是304,内容为空,这样就节省了传输数据量。如果服务器端的文件被修改过,则返回和第一次请求时类似。 if (request.Headers["If-Modified-Since"] != null && TimeSpan.FromTicks(DateTime.Now.Ticks - DateTime.Parse(request.Headers["If-Modified-Since"]).Ticks).Seconds < secondsTime) { //在这里会发现,当浏览器返回304状态时,下面的日期并不会输出 //response.Write(DateTime.Now); response.StatusCode = 304; //response.Headers.Add("Content-Encoding", "gzip"); response.StatusDescription = "Not Modified"; } else { //输出当前时间 //response.Write(DateTime.Now); //设置客户端缓存状态 SetClientCaching(response, DateTime.Now); }
我也遇到过这样的的问题,在内网是好的,外网就不行了