(re) test de connexion FTP impossible [Résolu]

Signaler
Messages postés
104
Date d'inscription
mardi 14 avril 2009
Statut
Membre
Dernière intervention
7 avril 2019
-
Messages postés
14874
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
27 mai 2020
-
Bonjour,
et bonne année à tous/toutes,

J'écris actuellement un petit code et suis gênée par le test de connexion.
Je m'explique.
Je lance un test de connexion par un bouton, lorsque j'appuie sur le bouton un test FTP doit se faire.

Voici la fonction :


private bool testconnection(string url, string user, string password)
        {
            try

            {
                FtpWebRequest request = (FtpWebRequest)WebRequest.Create(url);
                request.Method = WebRequestMethods.Ftp.ListDirectory;
                request.Credentials = new NetworkCredential(user, password);
                request.GetResponse();
                
            }
            catch (WebException ex)
            {
                return false;
            }
            return true;
        }


Avec le même couple login/password sur la même adresse FTP, un coup ça fonctionne puis pas (reste bloqué à "request.GetResponse();")

Test 1 :
Je lance l'appli.
Je lance le test avec serveur FTP éteint, il en ressort false. Parfait.
J'active le serveur FTP, je lance le test, ça reste bloqué en "request.GetResponse();").

Test 2 :
Je lance l'appli.
J'active le serveur FTP, je lance le test, la connexion se fait bien. Parfait.
Je relance le test, serveur FTP toujours actif, ça reste bloqué en "request.GetResponse();").

Merci de votre aide.

4 réponses

Messages postés
14874
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
27 mai 2020
409
Bonjour

je n'ai jamais fais de FTP, donc n'est pas la réponse à ta question, mais au cas où quelqu'un l'ait (on n'est malheureusement peu nombreux à répondre en C#...) , peux tu préciser quand tu dis
reste bloqué à "request.GetResponse();"
ça attend la réponse indéfiniment sans générer d'erreur particulière?
N'y a t il pas un timeout à définir?


PS: voir ici comment bien utiliser la coloration syntaxique https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Messages postés
14667
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
15 mai 2020
143
Question, fermes-tu correctement la connexion ?
Car si tu ne le fait pas, il est possible que la connexion reste ouverte (jusqu'au passage du Garbage Collector) et comme certains fournisseurs bloquent les connexion multiples, cela peut te poser problème.
Messages postés
104
Date d'inscription
mardi 14 avril 2009
Statut
Membre
Dernière intervention
7 avril 2019
1
Bonjour et merci de ton aide NHenry,
Euh non je ne ferme pas la connexion, comment faire ?
Messages postés
14874
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
27 mai 2020
409
Messages postés
104
Date d'inscription
mardi 14 avril 2009
Statut
Membre
Dernière intervention
7 avril 2019
1
Merci pour le lien, ça fonctionne !
Voici le code utilisé :

private bool testconnection(string url, string user, string password)
        {
            try

            {
                FtpWebRequest request = (FtpWebRequest)WebRequest.Create(url);
                request.Method = WebRequestMethods.Ftp.ListDirectory;
                request.Credentials = new NetworkCredential(user, password);
                request.GetResponse();
                request.Abort();
                
            }
            catch (WebException ex)
            {
                return false;
            }
            return true;
        }


Merci beaucoup à vous 2.
Messages postés
14874
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
27 mai 2020
409
Pense à passer le sujet résolu, avec la roue dentée tout en haut du fil.
Messages postés
104
Date d'inscription
mardi 14 avril 2009
Statut
Membre
Dernière intervention
7 avril 2019
1
Merci de votre aide Whismeril,

Il y a un timeout lors du premier test de connexion mais pas au second.
J'ai refait le Test 2 pour être certains :
Je lance l'appli.
J'active le serveur FTP, je lance le test, la connexion se fait bien. Parfait.
Je relance le test, serveur FTP toujours actif, ça reste bloqué en "request.GetResponse();") plusieurs minutes.
Messages postés
14874
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
27 mai 2020
409
Navré, mais je ne eux rien de plus pour toi