2009-09-09 10 views
0

J'essaie de télécharger un fichier crypté PGP via FTP. Mais j'obtiens un message d'erreur comme suit:Erreur lors du transfert du fichier PGP via FTP: La connexion sous-jacente était fermée: Une erreur inattendue s'est produite sur une réception

La connexion sous-jacente a été fermée: Une erreur inattendue s'est produite sur une réception.

J'utilise le code suivant et obtenir l'erreur à la ligne:

flux ftpStream = response.GetResponse();

Y at-il quelqu'un qui peut m'aider le plus tôt possible?

Ce qui suit est l'exemple de code:

FtpWebRequest request = 
    WebRequest.Create("ftp://ftp.website.com/sample.txt.pgp") as FtpWebRequest; 
request.UsePassive = true;  
FtpWebResponse response = request.GetResponse() as FtpWebResponse;  
Stream ftpStream = response.GetResponse();  
int bufferSize = 8192;  
byte[] buffer = new byte[bufferSize];  
using (FileStream fileStream = 
     new FileStream("localfile.zip", FileMode.Create, FileAccess.Write)) 
{ 
    int nBytes; 
    while((nBytes = ftpStream.Read(buffer, 0, bufferSize) > 0) 
    { 
     fileStream.Write(buffer, 0, nBytes); 
    } 
} 

Cordialement, Sumeet

Répondre

0

Pourquoi essayez-vous de télécharger en utilisant GetResponse()? Vous avez besoin d'au moins request.Method = WebRequestMethods.Ftp.UploadFile; et request.GetRequestStream();

0

Flux ftpStream = response.GetResponseStream();

0
ftp.UsePassive = true; 
ftp.Method = WebRequestMethods.Ftp.UploadFile; 
ftp.KeepAlive = false; 
ftp.UseBinary = true; 
ftp.UsePassive = true; 
ftp.Timeout = int.MaxValue; 
ftp.ReadWriteTimeout = int.MaxValue; 
ftp.Proxy = null; 
ftp.Credentials = new NetworkCredential(values.UserName, values.Password); 
Questions connexes