我想知道当我执行 fileStream.Read 调用时,是否有人知道为什么我的代码会强制执行一个exeption的回答,并显示消息“流被释放”
我可以列出文件夹中的文件,并使用我的浏览器到fileUrl正常工作。不涉及代理。 UnifiedFile只是VirtualFile的一个子类,它来自我使用的CMS。 (这是我试图下载的图片)
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”对前一个请求完成,因此提出错误请求。 DOH
感谢Guys提供的“奶奶帮助”;-)(瑞典语表达所以不知道它是否真的适用于英语)
答案 0 :(得分:3)
在继续之前,您应该检查回复StatusCode
。我怀疑请求已失败,因此没有响应正文。