【问题标题】:HttpWebRequest system lacked sufficient buffer space or because a queue was fullHttpWebRequest 系统缺少足够的缓冲区空间或因为队列已满
【发布时间】:2013-05-30 17:28:39
【问题描述】:

我正在尝试开发 C# 来上传视频。我正在使用httpwebrequest 并且该应用程序正常工作,上传视频的线程很少,但是当我尝试增加线程时,一些视频无法上传并且线程出现此异常:

由于系统缺乏足够的缓冲区空间或队列已满,无法对套接字执行操作

我不知道确切的问题是什么,但可能与应用程序在上传前尝试缓冲多个视频时内存有限有关。

我只是想同时上传多个视频...有什么解决办法吗?

【问题讨论】:

  • 您是否通过将 httpwebrequests 包装在 using 语句中来正确处理它们?

标签: c# httpwebrequest


【解决方案1】:

确保在 HttpWebRequest 上将 AllowWriteStreamBuffering 属性设置为 false

另外,您是否考虑过使用 System.Net.Http 的 HttpClient api,它具有更好的编程模型?

【讨论】:

  • AllowWriteStreamBuffering 属性与 WSAENOBUFS 错误有何关系?
  • 此属性的默认值为 true,因此如果我们在客户端上传大文件,您可能会看到文件在通过网络写入之前先被缓冲...对不起,但我是不清楚您所说的“WSAENOBUFS 错误”是什么意思
猜你喜欢
  • 2013-06-14
  • 1970-01-01
  • 1970-01-01
  • 2011-05-23
  • 2011-02-11
  • 1970-01-01
  • 2014-12-12
  • 1970-01-01
  • 2015-12-18
相关资源
最近更新 更多