Je me demandais si quelqu'un connaît la réponse à pourquoi mon code jette un exeption quand je fais le fileStream.Read appel, avec le message « Le flux est disposé »FtpWebRequest dit flux est Disposé
Je liste les fichiers dans le dossier et en utilisant mon navigateur pour le fichier URL fonctionne très bien. Aucun mandataire n'est impliqué. UnifiedFile est juste une sous-classe de VirtualFile qui vient du CMS avec lequel je travaille. (C'est une image que je suis en train de télécharger)
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);
}
}
}
}
Edit: trouvé le bogue; le "GetResponseStream" est fait à la demande précédente et donc à la mauvaise demande. doh
Merci les gars pour le ;-) « Granny help » (expression suédoise donc je ne sais pas si elle applique vraiment en anglais)
while (true) ??? –
ahh, je vois la pause. –
On dirait que vous avez un refactoring à faire,;) – AnthonyWJones