HttpWebRequest:无法连接到远程服务器

时间:2012-03-03 05:47:03

标签: c# multithreading proxy httpwebrequest

我开发了连接到服务器并从中获取不同信息的客户端应用程序。它是多线程的应用程序。当我用几个线程启动它时它完美无缺。 直到它开始使用以下消息抛出异常:

“无法连接到远程服务器”

我使用过TCPView,无法找到有关我的客户端应用程序的任何信息。因此,当它开始返回“无法连接”时,它甚至不会打开任何http连接...

我如何弄清楚它为什么不打开连接?

谢谢,

修改

以下是我在多个线程中用于构建页面内容的代码:

    HttpWebResponse response = null;
        Stream resStream = null;
        StreamReader reader = null;
        string res = "";            
        try
        {
            HttpWebRequest request = (HttpWebRequest)
                WebRequest.Create(requestUrl);
            if (cookies_ == null)
            {
                cookies_ = new CookieContainer();
            }
            request.Timeout = timeoutVal_;
            request.ReadWriteTimeout = timeoutVal_ * 2;
            request.KeepAlive = false;

            if (bUseCookies)
            {
                request.CookieContainer = cookies_;
            }

            // execute the request
            response = (HttpWebResponse)
                request.GetResponse();

            resStream = response.GetResponseStream();
            reader = new StreamReader(resStream);
            res = reader.ReadToEnd();
        }
        catch (Exception ex)
        {
            throw new Exception(siteToken + " " + ex.Message);
        }
        finally
        {
            if (response != null)
                response.Close();

            if (resStream != null)
                resStream.Close();

            if (reader != null)
            {
                reader.Close();
            }
        }

        return res;

几分钟线程进入具有超时异常的循环或无法连接到服务器。

奇怪的是,如果我启动Fiddler,连接会重新激活,并且线程会继续工作一段时间。 Fiddler如何解决这个问题?

0 个答案:

没有答案