代码之家  ›  专栏  ›  技术社区  ›  ullmark

ftpWebRequest表示流已释放

  •  4
  • ullmark  · 技术社区  · 15 年前

    我想知道是否有人知道当我执行 文件读取 调用,并显示消息“流已释放”

    我可以列出文件夹中的文件,并使用我的浏览器访问文件URL。不涉及代理。UnifiedFile只是我使用的CMS中的virtualFile的一个子类。(这是我要下载的图像)

    FtpWebRequest fileRequest = (FtpWebRequest)FtpWebRequest.Create(fileUrl);
    fileRequest.Method = WebRequestMethods.Ftp.DownloadFile;
    fileRequest.Credentials = credentials;
    fileRequest.EnableSsl = this.EnableSsl;
    fileRequest.UseBinary = true;
    fileRequest.UsePassive = true;
    fileRequest.KeepAlive = true;
    fileRequest.Proxy = null;
    
    using (FtpWebResponse fileResponse = (FtpWebResponse)fileRequest.GetResponse())
    {
        using (Stream fileStream = response.GetResponseStream())
        {
            UnifiedFile createdFile = PictureManager.Instance.CreateOriginalFile(name);
            using (Stream targetStream = createdFile.Open(FileMode.OpenOrCreate))
            {
                 byte[] buffer = new byte[2048];
    
                 // Read the file
                 while (true)
                 {
                    int bytesRead = fileStream.Read(buffer, 0, buffer.Length);
                    // Reached end of stream, close
                    if (bytesRead == 0)
                      break;
    
                    targetStream.Write(buffer, 0, bytesRead);
                  }
    
             }
       }
    

    }

    编辑: 找到错误;对上一个请求执行了“getResponseStream”,因此请求错误。 多哈

    谢谢大家的“奶奶的帮助”;—)(瑞典语,所以不知道它是否真的适用于英语)

    1 回复  |  直到 15 年前
        1
  •  3
  •   AnthonyWJones    15 年前

    你应该检查一下答案 StatusCode 在继续之前。我怀疑请求失败了,所以没有响应主体。