【问题标题】:.NET Winforms c# Upload large files.NET Winforms c# 上传大文件
【发布时间】:2014-03-19 17:44:52
【问题描述】:

当文件长度高于 18 mb 时出现此错误:

stream 不支持并发 IO 读写操作

错误定位在本节:

requestStream.Write(header, 0, header.Length);
if (fileData != null)
{
     // write the file data, if any
     byte[] buffer = new Byte[checked((uint)Math.Min(8192, (int)fileData.Length))];
     int bytesRead;

     try
     {
          while ((bytesRead = fileData.Read(buffer, 0, buffer.Length)) != 0)
          {
               //throws an exception after 3000 loops aprox
               requestStream.Write(buffer, 0, bytesRead);
          }
     }
     catch (Exception ex)
     {
          string aux = ex.Message;
     }
}

// write footer
requestStream.Write(footer, 0, footer.Length);
return webrequest.GetResponse();

我尝试了 locksendChunked = trueAllowWriteStreamBuffering = false 但我无法正确上传文件。

提前致谢

【问题讨论】:

  • 对不起,我可以找到 ImageList.ImageSize 属性和我的问题之间的关系。
  • 您确定可以上传大于 18 Mb 的文件吗?
  • 您要上传到网络服务器?服务器可能只是抛出一个奇怪的异常。在您控制的网络服务器上进行测试。
  • 当循环尝试上传(写入)数据时,Web 服务器可能会发送一条错误消息(读取)指出已超出大小限制。您可以尝试使用 Wireshark 或类似的东西检查客户端和程序之间发送的内容...
  • 好的,我去调查一下

标签: c# .net winforms upload


【解决方案1】:

当循环尝试将数据上传(写入)到流时,Web 服务器可能会发送一条错误消息(读取),指出已超出大小限制。您可以尝试使用 Wireshark 或其他网络嗅探器检查服务器和程序之间发送的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-22
    • 1970-01-01
    • 2011-02-03
    • 1970-01-01
    • 2014-07-21
    • 1970-01-01
    相关资源
    最近更新 更多