none
Exception suite à une connexion à un serveur FTP RRS feed

  • Discussion générale

  • Salut, j'essaye de connecter à un serveur FTP et j'utilise ce code mais je reçoit une exception  (j'ai mis un commentaire indiquant la ligne qui génère l'exception):

    string serverUrl;
                NetworkCredential credential;
                bool Successful = false;
                Int64 filesize;
                try
                {
                    Uri serverUri = null;
    
                    bool Success = Uri.TryCreate(ftpURIInfo, UriKind.Absolute, out serverUri);
                    
                    serverUrl = serverUri.ToString();
                    credential = new System.Net.NetworkCredential(Username.Trim(),
                               Password.Trim());
    
                    filesize = await RemoteFileSize(serverUrl, filename, credential, codeChantier);
    
                    if (filesize == 0)
                        throw new System.ArgumentException("File is empty");
                    else if (filesize > 1048576)  //example says this is the max for small size..
                        return Successful;  // Return false.. should signal to move to a large download if coded right..
                    else
                    {
                        WebRequest request = WebRequest.Create(serverUrl + codeChantier + filename);
                        if (credential != null)
                        {
                            request.Credentials = credential;
                        }
    
                        request.Method = "RETR";
    
                        // Get response.
    
    //returning exception here :
                        using (WebResponse response = await request.GetResponseAsync())
                        {
    
                            var dbpath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "discovery.db3");
                            // Get response stream.
                            using (StreamReader responseStream = new StreamReader(response.GetResponseStream()))
                            {
                                using (var db = new SQLite.SQLiteConnection(dbpath))
                                {
                                    db.DeleteAll<FicheTechnique>();
                                    while (responseStream.Peek() >= 0)
                                    {
                                        
    
                                        string ligne = responseStream.ReadLine();
    
                                        string[] words = ligne.Split(';');
                                        try
                                        {
    
                                            // Create the tables if they don't exist 
                                            db.Insert(new FicheTechnique()
                                            {
    
                                                No = words[0].ToString(),
                                                Descriptions = words[1].ToString(),
                                                Actif = 
                                            }
                                           );
                                            db.Commit();
                                            
                                        }
                                        catch (Exception ex)
                                        {
                                            //var line = new MessageDialog(ex.Message.ToString());
                                            // line.ShowAsync();
                                            
                                                                                }
                                    }
                                    db.Dispose();
                                     db.Close();
                                    
    
                                     
                                }
                            }
                        }
                    }
                    Successful = true;
                }
                catch (Exception ex)
                {
                   throw;
                  
                }
                
                return Successful;

    l'exception est : "The remote server returned an error: 227 Entering Passive Mode " et dans l'inner exception je recoit sa :

    "Une opération a été tentée sur un réseau impossible à atteindre 41.224.247.163"

    svp ne me demander pas de fixer la propriété "UsePassiveMode" à false car elle n'existe que avec FtpWebRequest qui n'est pas supporter sur winrt .

    Merci d'avance :) 


    zipo

    • Type modifié Aurel Bera mercredi 5 février 2014 08:19 discussion
    mercredi 29 janvier 2014 13:15

Toutes les réponses