(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
16294
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
21 septembre 2021
-
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
16294
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
21 septembre 2021
563
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
14821
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 septembre 2021
156
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
16294
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
21 septembre 2021
563
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
16294
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
21 septembre 2021
563
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
16294
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
21 septembre 2021
563
Navré, mais je ne eux rien de plus pour toi