IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Services Web Discussion :

Problemes avec FtpWebRequest


Sujet :

Services Web

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2005
    Messages : 197
    Par défaut Problemes avec FtpWebRequest
    Bonjour,

    La fonction suivante fonctionne très bien lorsque je lui passe un username/password que l'ISP m'a donné en tant que propriétaire du site. SI je créer un nouveau FTP user et que j'insère maintenant le username/password du compte usagé, ca ne fonctionne plus! Si j'utilise un client FTP et que j'utilise les mêmes paramètres, ca fonctionne et je peux uploader les fichiers. Le problème, c'est que c'est mon application qui doit uploader les fichiers et pas un client FTP.

    J'ai téléphoné à leur service à la clientèle et ils n'y comprennent rien. Se pourrait-il que parce que leur nom d'usagé FTP contient un "." par défaut, que la chaîne qui est passée contient un caractère invalide? Je suis nouveau en C# et je suspecte n'importe quoi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     public void upload()
            {
                ModifyRegistry myRegistry = new ModifyRegistry();
                myRegistry.SubKey = "SOFTWARE\\JJJJJJJJJ\\VIDEO";
                myRegistry.ShowError = true;
                string path = myRegistry.Read("path");
     
                string FTPAddress = "ftp://JJJJJJ@JJJJJJ.ca";
                string filePath =  path + fileName;
     
                string username = "usage.1";
                string password = "123456";
     
                try
                {
                    FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(FTPAddress + "//www//fffffff.com//library//" + Path.GetFileName(filePath));
     
                    request.Method = WebRequestMethods.Ftp.UploadFile;
                    request.Credentials = new NetworkCredential(username, password);
                    request.UsePassive = true;
                    request.UseBinary = true;
                    request.KeepAlive = false;
     
     
     
                    //Load the file
                    FileStream stream = File.OpenRead(filePath);
                    byte[] buffer = new byte[stream.Length];
     
                    stream.Read(buffer, 0, buffer.Length);
                    stream.Close();
     
                    //Upload file
                    Stream reqStream = request.GetRequestStream();
                    reqStream.Write(buffer, 0, buffer.Length);
                    reqStream.Close();
     
                    // delete File on hard disk
                    DeleteFile(filePath);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Unable to upload file\n" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }

  2. #2
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string FTPAddress = "ftp://JJJJJJ@JJJJJJ.ca";
    JJJJJJ@JJJJJJ ? pourquoi un @ ? (ie. pourquoi spécifier un nom d'utilisateur ?)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2005
    Messages : 197
    Par défaut
    "ftp://JJJJJJ@JJJJJJ.ca" n'est pas un nom d'utilisateur. C'est l'adresse FTP de mon ISP.

  4. #4
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Sauf que si tu essayes par exemple d'accéder à ftp://machin@smyley.developpez.com ça veux dire que tu tentes d'accéder au serveur ftp://smyley.developpez.com avec comme nom d'utilisateur "machin" et il est alors demandé un mot de passe pour le compte d'utilisateur "machin" (qui n'existe pas soit dit en passant).

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2005
    Messages : 197
    Par défaut
    Je ne sais pas ou tu veux en venir. L'adresse FTP de mon ISP est : ftp://globalarm@globalarm.ca. J'ai confirmé avec eux et c'est ok.

    Si j'utilise un client FTP comme FileZilla, je peux très bien uploader les fichier avec le username/passsword de mon nouvel usager FTP. Le problème provient de .NET.

    En plus, si je change le username/password pour le mien, aucun problème. C'est fou non?

    Lorsque j'essaie d'uploader, voici l'erreur que le serveur me renvoit:
    "The remote server returned an error: (550) File unavailable (e.g., file not found, no access)".
    J'ai trouvé beaucoup de rubrique sur le Web mais aucune solution.

  6. #6
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par acheo Voir le message
    En plus, si je change le username/password pour le mien, aucun problème. C'est fou non?
    Ce n'est pas fou, c'est tout à fait normal : tu instancies un NetworkCredential avec des info de compte n'apparenant pas au domaine local, comment veux tu qu'il s'y retrouve ?

    A contrario, quand tu utilises le tien, qui, on le suppose, appartient au domaine de la machine où s'exécute ton appli, il retrouve ses petits.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2005
    Messages : 197
    Par défaut
    solution?????

  8. #8
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Tu as essayé de juste mettre ftp://globalarm.ca comme adresse de ftp ? (je te demande pas de me dire si c'est fou ou pas, juste d'essayer pour voir et de me dire si ça marche ou pas)

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2005
    Messages : 197
    Par défaut
    Je viens juste d'essayer et j'obtiens la même erreur.

  10. #10
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Ah enfin !

    Bon, je peux pas tester moi même vu que j'ai pas les identifiants (en tout cas c'est pas usage.1 et 123456 ). Deuxième question : le dossier qui est censé contenir le fichier existe-t-il déjà sur le ftp ?

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2005
    Messages : 197
    Par défaut
    Oui, il existe en dessous de "root" --> globalarm.com/library

  12. #12
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Donc sur le ftp le dossier
    existe et tu veux y mettre un fichier
    Machin.truc
    quelque soit les identifiants que tu utilises ? (parce que le FtpWebRequest ne crée pas tout seul les dossiers)

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2005
    Messages : 197
    Par défaut
    C'est exact. Le fichier à uploader réside localement et le répertoire de destination existe déjà et ne change pas.

  14. #14
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    C'est possible pour toi de créer un compte de test à partir du quel nous (ou je) pourrions essayer de voir ?

  15. #15
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Bizarre ...

    Déjà quand j'essaye de me connecter à ftp://globalarm@globalarm.ca sur FileZilla il me met comme ftp ftp://globalarm.ca et comme user globalarm (ce qui est cohérent vu que normalement la syntaxe pour se connecter à un serveur c'est ftp://serveur.machin ou ftp://user@serveur.machin ou ftp://user:password@serveur.marchin).

    Bon ensuite, ma mini-lib ftp teste positivement l'upload et le téléchargement pour un fichier situé dans ftp://globalarm@globalarm.ca donc le problème est ailleurs. Le truc c'est que ftp://globalarm.ca est vide et si donc j'essaye d'écrire directement ftp://globalarm.ca/www/fffffff.com/l...monfichier.txt avec ma mini-lib ça échoue avec l'erreur 550, car le site ftp://globalarm.ca avec les ids que tu m'as passé est vide et que www/fff.com/library n'existe pas, par contre si je lui demande de d'abord créer les dossiers de l'arbre alors là ça marche nikel chrome.

    Donc vérifie ton ftp, quand je t'ai demandé tu m'as dit que les dossiers existaient alors que avec FileZilla et ma mini-lib j'ai constaté qu'ils n'existaient pas (ou en tout cas même s'ils sont présents physiquement, ils n'existent pas sur le ftp).

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2005
    Messages : 197
    Par défaut
    Smiley,

    Si je me connecte avec FileZilla en utilisant mon user de propriétaire (owner?), j'observe que le répertoire /library est bien présent. J'ai pu le créer en accédant directement à un panneau de contrôle de la compagnie et le créer tel que l'on créer tout répertoire. Je croyais que l'existence du répertoire physique garantissait l'existence du dossier FTP.

    Lorsque tu dis que tu as pu uploader, dans quel répertoire as-tu pu le faire et comment as-tu pu le confirmer? Je croyais que le user que je t'ai donné te donnait accès seulement à /library. T'aurais-je donné accès à tout mon site?

    Donc vérifie ton ftp, quand je t'ai demandé tu m'as dit que les dossiers existaient alors que avec FileZilla et ma mini-lib j'ai constaté qu'ils n'existaient pas (ou en tout cas même s'ils sont présents physiquement, ils n'existent pas sur le ftp).
    Comment puis-je créer un répertoir sur le FTP s'il existe déjà physiquement sur le serveur? J'ai fais plusieurs tests suite à ton message et j'ai effacé le répertoire à partir du panneau de contrôle de Netfirms. Puis, j'ai crée le dossier à partir de FileZilla. J'ai roulé mon application (c#) et j'ai obtenu la même erreur. J'ai effacé à nouveau le dossier "library" à partir du panneau de contrôle et suis retourné à FileZilla. J'observe que "library" est toujours là. Faudrait que tu m'explique car je que je ne suis plus! Encore là, ma compréhension de dossier physique versus FTP n'est pas à point

    Donc, j'ai fais plusieurs tests en créant le dossier FTP et j'ai pas eu autant de succès que toi. Quelle est ta méthode?

  17. #17
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Essayes de te connecter avec filezilla avec les users que tu m'as donné. Moi j'obtiens un ftp vide.

Discussions similaires

  1. Probleme avec la copie des surfaces
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/01/2003, 10h33
  2. Problèmes avec le filtrage des ip
    Par berry dans le forum Réseau
    Réponses: 9
    Dernier message: 30/12/2002, 07h51
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo