2011-04-05 67 views
0

我有一个奇怪的问题,我不确定它来自哪里。 昨晚我开始申请时开始了。运行线程应用程序后,无法在所有浏览器中浏览到所有网站

我有以下代码:

DateTime startTime = DateTime.Now; 
WebRequest req = (WebRequest)HttpWebRequest.Create("http://" + server + url + action); 
WebResponse res = req.GetResponse(); 
try 
{ 
    using (StreamReader reader = new StreamReader(res.GetResponseStream())) 
    { 
     string response = reader.ReadToEnd(); 
     TestInfo.CheckMsg retMsg; 

     // individual Test 
     retMsg = indFunc(req.RequestUri.ToString(), response); 
     printMessage(retMsg, req, res, startTime); 

     if (retMsg.SeverityLevel > TestInfo.CheckMsg.Severity.Warning) 
      return; 

     // group Test 
     retMsg = groupFunc(relatedGroup, req.RequestUri.ToString(), response); 
     printMessage(retMsg, req, res, startTime); 

     if (retMsg.SeverityLevel > TestInfo.CheckMsg.Severity.Warning) 
      return; 

     // common Test 
     retMsg = commonFunc(req.RequestUri.ToString(), response); 
     printMessage(retMsg, req, res, startTime); 

     if (retMsg.SeverityLevel > TestInfo.CheckMsg.Severity.Warning) 
      return; 

     reader.Close(); 
    }; 
} 
catch (Exception e) 
{ 
    Console.WriteLine("EXCEPTION WAS THROWN!!!!! " + e.Message); 
} 
finally 
{ 
    res.Close(); 
} 

此功能在多个线程运行。 经过多次应用程序调试后,此代码无法连接声明UNDERLYING CONNECTION WAS CLOSED。 当试图浏览我的电脑(WIN XP)在所有浏览器中的所有网站我得到空白页面或铬我得到从服务器的响应是空的。

只有在其他TCP连接正常工作时才会使用Http!

所以我想这个问题可能是在我的代码(也许事情不会被释放???)

让我知道你怎么想的代码。

感谢

+0

你是什么意思_所有浏览器对所有网站...空白页'_?很多这个问题都是荒谬的,但我不知道从哪里开始编辑它。 – 2011-04-05 14:08:01

+0

我知道它没有意义! DNS的作品,我得到的HTTP重定向好,但即使google.com,yahoo.com将不会加载 - 铬是唯一一个谁说它从服务器的EMPTY RESPONSE! – Himberjack 2011-04-05 14:18:35

回答

1

有一件事我确实看到了错的是你需要移动

WebResponse res = req.GetResponse(); 

进入你的try块BC它可以抛出一个异常(MSDN)。我还会添加一个空检查到:

if(res != null){ 
    res.Close() 
} 
相关问题