(re) test de connexion FTP impossible

Résolu
babaOrhumette Messages postés 104 Date d'inscription mardi 14 avril 2009 Statut Membre Dernière intervention 7 avril 2019 - Modifié le 13 janv. 2019 à 11:24
Whismeril Messages postés 18601 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 22 septembre 2023 - 13 janv. 2019 à 15:44
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

Whismeril Messages postés 18601 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 22 septembre 2023 628
13 janv. 2019 à 09:37
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
1
NHenry Messages postés 15083 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 19 septembre 2023 159
13 janv. 2019 à 13:08
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.
1
babaOrhumette Messages postés 104 Date d'inscription mardi 14 avril 2009 Statut Membre Dernière intervention 7 avril 2019 1
13 janv. 2019 à 14:36
Bonjour et merci de ton aide NHenry,
Euh non je ne ferme pas la connexion, comment faire ?
0
Whismeril Messages postés 18601 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 22 septembre 2023 628
13 janv. 2019 à 15:32
0
babaOrhumette Messages postés 104 Date d'inscription mardi 14 avril 2009 Statut Membre Dernière intervention 7 avril 2019 1
13 janv. 2019 à 15:42
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.
0
Whismeril Messages postés 18601 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 22 septembre 2023 628
13 janv. 2019 à 15:44
Pense à passer le sujet résolu, avec la roue dentée tout en haut du fil.
0
babaOrhumette Messages postés 104 Date d'inscription mardi 14 avril 2009 Statut Membre Dernière intervention 7 avril 2019 1
Modifié le 13 janv. 2019 à 11:02
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.
0
Whismeril Messages postés 18601 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 22 septembre 2023 628
13 janv. 2019 à 11:33
Navré, mais je ne eux rien de plus pour toi
0
Rejoignez-nous