StreamWriter无法正确关闭



我正确使用streamwriter类遇到了一些麻烦。我需要发布大约10个对象,但最多只有几个对象。但是,经过2个帖子,第三个帖子没有遍历。我意识到这是因为您可以拥有的最大连接是2。但是,我很困惑为什么我(想)我(认为)我关闭了我的StreamWriter连接,所以我感到困惑。这是我的代码:

var httpWebRequest = (HttpWebRequest)WebRequest.Create("my url"); 
httpWebRequest.ContentType = "text/json";
httpWebRequest.Method = "POST";
//var data = json data
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
    streamWriter.Write(data);
    streamWriter.Close();
}

我认为使用的语句会自动关闭,但事实并非如此,因此我添加了Close()行。但是,这似乎没有做任何事情。调试器被困在第三次尝试的使用线上。如果我将ServicePointManager.defaultConnectionLimit设置为10之类的东西,那么一切都有效,但是我很困惑为什么我写的东西没有。任何帮助将不胜感激!

我怀疑这与您使用响应

的可能性更有可能

using语句将关闭StreamWriter,您甚至不需要明确的Close调用。但是,您也需要 using的响应语句:

using (var response = httpWebRequest.GetResponse())
{
    ...
}

如果您没有,则特定主机的连接池由于未挂起的响应而被连接堵塞。

相关内容

  • 没有找到相关文章

最新更新