C#-为什么我的HTTPWebRequest每次都返回缓存响应?

C#-为什么我的HTTPWebRequest每次都返回缓存响应?,c#,caching,httpwebrequest,C#,Caching,Httpwebrequest,我见过很多类似的问题,但都没有解决我的问题。下面是我正在使用的代码片段: NetworkCredential credentials = new NetworkCredential(CredentialsManager.Username, CredentialsManager.Password); HttpWebRequest getReq = (HttpWebRequest) WebRequest.Create(m_editPageUrl); getReq.CachePolicy = new

我见过很多类似的问题,但都没有解决我的问题。下面是我正在使用的代码片段:

NetworkCredential credentials = new NetworkCredential(CredentialsManager.Username, CredentialsManager.Password);

HttpWebRequest getReq = (HttpWebRequest) WebRequest.Create(m_editPageUrl);
getReq.CachePolicy = new RequestCachePolicy(RequestCacheLevel.BypassCache); // I've also tried RequestCacheLevel.NoCacheNoStore
getReq.Credentials = credentials;
getReq.Timeout = 1000;
getReq.Method = "GET";
getReq.Accept = "text/html";

string responseString;
using (HttpWebResponse getResponse = (HttpWebResponse) getReq.GetResponse())
{
    using (Stream responseStream = getResponse.GetResponseStream())
    {
        if (responseStream == null)
            throw new Exception("Did not receive a response from the specified page.");

        using (StreamReader reader = new StreamReader(responseStream))
            responseString = reader.ReadToEnd();
    }
}
出于某种原因,存储到responseString中的任何内容都会被缓存,即使我已经告诉HTTPWebRequest绕过缓存。大约每一个小时,我都会得到一个更新的响应,但是如果我改变了什么,更新的响应(现在应该是无效的,因为有一个更新的版本)仍然会传递给我。有权威人士告诉我,服务器设置为不缓存响应,所以我一定是做错了什么。我就是不知道是什么

我在某个地方读到,使用套接字制作更低级的加载程序可能会有所帮助。然而,我找不到任何地方可以轻松演示如何做到这一点。如果这是我应该做的,请让我知道在哪里可以找到帮助


谢谢。

在为我的应用程序访问的服务器上托管的站点挖掘代码时,我发现该站点有一个它维护的缓存服务。一旦它被禁用,一切都像一个符咒。我的原始代码运行良好。

我会尝试使用代理工具(如)进行测试。这会告诉你是客户端还是服务器在做缓存。实际上,我现在正在运行这个程序。当我发送请求时,标题指示应该禁用缓存(内容控制:无缓存,Pragma:无缓存)。然而,我得到的回应是一个旧的。在我看来,这意味着服务器正在错误地传递回内容。不过,我已经得到保证,它工作正常。您认为这是服务器端问题还是客户端问题?@BrianGradin:如果服务器发送错误的数据,几乎肯定不是客户端问题。@BrianGradin-有些web服务器不支持各种缓存方案。如果这超出了您的控制范围,那么您别无选择,只能在代码中处理它(并处理任何副作用)。我知道这是非常基本的,但您是否尝试将随机数作为参数添加到您的请求URL中?