我有一个应用程序可以根据关键字从 Twitter 上读取推文。这些关键字可以定期更改,当它们发生变化时,我需要关闭并重新打开流。我能够打开流没有问题,但是当我尝试关闭该流时遇到问题。这是一些示例代码:
try
{
response = (HttpWebResponse)request.GetResponse();
using (Stream stream = response.GetResponseStream())
{
using (StreamReader reader = new StreamReader(stream))
{
WriteLogMessage("Stream open - entering loop");
while (true)
{
if (count == 10) break;
count++;
string tweet = reader.ReadLine();
Console.Write(tweet);
}
WriteLogMessage("Exited loop");
}
/**** Program seems to freeze and never gets past this point ****/
WriteLogMessage("Reader disposed");
}
WriteLogMessage("Stream disposed");
}
catch (Exception ex)
{
WriteLogMessage(ex.Message);
}
finally
{
if (response != null)
response.Dispose();
WriteLogMessage("Response closed");
}
此代码在我的 win7 (x64) 机器上运行良好。但是,当我将其部署到服务器 2008 或服务器 2012(均为 x64)时,我看到了这种冻结行为。除了 twitter 需要的标头之外,我没有在 HttpWebRequest 上设置任何参数。有人对发生的事情有任何想法吗?