相关疑难解决方法(0)

HttpWebRequest在第二次调用时超时

为什么以下代码超时运行它的第二个(及后续)时间?

代码挂起:

using (Stream objStream = request.GetResponse().GetResponseStream())
Run Code Online (Sandbox Code Playgroud)

然后导致WebException表示请求已超时.

我试过这个用WebRequestHttpWebRequest

编辑:似乎代码正在崩溃 request.GetResponse()

编辑:这篇文章表明它可能是一个GC问题 - > http://www.vbforums.com/showthread.php?t=610043 - 根据这篇文章,如果Fiddler在后台打开,问题就会得到缓解.

服务器在那里并可用于请求.

    private string GetQLMResponse(string URL)
    {
        HttpWebRequest request = WebRequest.Create(URL) as HttpWebRequest;
        request.Credentials = new NetworkCredential(Settings.Default.LicenseUser, Settings.Default.LicensePassword);
        request.KeepAlive = false;
        request.Timeout = 5000;
        request.Proxy = null;

        // Read stream
        string responseString = String.Empty;
        try
        {
            using (var response = request.GetResponse())
            {
                using (Stream objStream = response.GetResponseStream())
                {
                    using (StreamReader objReader = new StreamReader(objStream))
                    {
                        responseString = objReader.ReadToEnd();
                        objReader.Close();
                    }
                    objStream.Flush(); …
Run Code Online (Sandbox Code Playgroud)

c# garbage-collection http webrequest httpwebrequest

43
推荐指数
4
解决办法
6万
查看次数