我使用StreamWriter通过WebRequest POST传递大量数据(30mb+)。它与错误的失败--流不支持并发IO读或写操作。与错误信息相反,我不执行并发操作--应用程序是单线程的,StreamWriter逻辑非常简单。
string data = "......."; // 30mb+ of text
var webRequest = WebRequest.Create(someUrl);
webRequest.Method = "POST";
webRequest.ContentLength = data.Length;
using (var writer = new StreamWriter(webRequest.GetRequestStream()))
writer.Write(data);我怀疑应该归咎于大量的数据。我已经看到用户在上传大型文件([1]、[2])时会收到此错误的引用,但是我还没有看到大数据作为TFS讨论之外的原因进行讨论。
我真的遇到了StreamWriter的某些限制吗?是否有更有效的方法来流这些数据?
发布于 2013-05-29 14:18:31
根本的问题是我的POST请求太大了,以至于超出了目标服务器的maxAllowedContentLength设置。修复方法是增加此设置的值。
我不知道为什么会出现“并发IO”错误,但只有在设置webRequest.ContentLength时才会发生。当我评论这一行时,我能够看到WebRequest从服务器收到了404。这最终导致我发现了maxAllowedContentLength的问题。
https://stackoverflow.com/questions/16737337
复制相似问题