StreamWriter因大量数据而失败

时间:2013-05-24 14:26:58

标签: .net .net-4.0 streamwriter

我正在使用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);

我怀疑大量数据是罪魁祸首。我看到Team Foundation System用户在上传大文件时遇到此错误的引用([1][2]),但我还没有看到大型数据被讨论为TFS讨论。

我是否真的遇到StreamWriter的限制?是否有更有效的方式来传输这些数据?

1 个答案:

答案 0 :(得分:1)

根问题是我的POST请求太大,以至于我超出了目标服务器的maxAllowedContentLength设置。解决方法是增加此设置的值。

我不确定为什么会出现“并发IO”错误,但只有在我设置webRequest.ContentLength时才会发生错误。当我评论出该行时,我能够看到WebRequest从服务器收到404。这最终让我发现了maxAllowedContentLength的问题。