1
我開發了連接到服務器並從中獲取不同信息的客戶端應用程序。它是多線程的應用程序。當我用幾條線啓動它時,它的工作非常完美。 直到它開始拋出一個異常,出現以下消息:HttpWebRequest:無法連接到遠程服務器
「無法連接到遠程服務器」
我用套裝軟件,並不能找到我的客戶端應用程序什麼。因此,當它開始返回「無法連接」時,它甚至不會打開任何http連接...
我怎樣才能找出爲什麼它不打開連接?
感謝,
編輯:
這裏是我使用多線程fecth頁面內容的代碼:
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,連接會重新激活並且線程會繼續工作一段時間。小提琴手如何解決這個問題?
Snarky答案:這就是調試器的用途。真正的答案:如果它無法連接到服務器,那麼它們將不會在TCPView中顯示爲OPEN。我們至少需要看一些代碼來幫助你弄清楚發生了什麼。 – 2012-03-03 05:53:42