HttpWebRequest:无法连接到远程服务器
本文关键字:服务器 连接 HttpWebRequest | 更新日期: 2023-09-27 18:26:26
我开发了客户端应用程序,它连接到服务器并从中获取不同的信息。这是一个多线程应用程序。当我用几个线程开始时,它的工作非常完美。直到它开始抛出带有以下消息的异常:
"无法连接到远程服务器"
我使用过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是如何解决这个问题的?
您可能正在通过代理连接互联网,请检查您的IE局域网设置。您需要从c添加代理设置。
var request = (HttpWebRequest)WebRequest.CreateHttp(url);
WebProxy proxy = new WebProxy("http://127.0.0.1:8888", true);
proxy.Credentials = new NetworkCredential("user", "pwd", "ADomain");
request.Proxy = proxy;
request.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
request.Timeout = 1000 * 60 * 5;
request.Method = method;
request.Headers.Add("DAUTH", dauth);request.GetResponse();