我有一个奇怪的问题,我不确定它是从哪里来的。 我昨晚开始申请时就开始了。
我有以下代码:
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。 当我试图在所有浏览器中浏览我的计算机(WIN XP)到所有网站时,我得到空白页面或者在chrome中我得到服务器的响应是空的。
当其他TCP连接工作时,Http只会被搞砸!
所以我猜问题可能出在我的代码中(也许某些东西没有发布???)
让我知道您对代码的看法。
感谢
答案 0 :(得分:1)
我确实看到错误的一件事是你需要移动
WebResponse res = req.GetResponse();
进入你的try块bc,它可以抛出异常(MSDN)。我还要添加一个空检查:
if(res != null){
res.Close()
}