9
votes

Erreur de téléchargement FTP PowerShell FTP 530 Non connecté

Je suis en difficulté pour obtenir un script PowerShell pour travailler. Je suis très nouveau à PowerShell alors il pourrait manquer quelque chose de stupide. XXX PRE>

I Obtenir l'erreur suivante: P>

        string filePath = @"C:\temp\myfile.xml";
        string FTPAddress = @"ftp://ftp.example.com/myfolder";
        FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(FTPAddress + "/" + Path.GetFileName(filePath));
        request.Method = WebRequestMethods.Ftp.UploadFile;
        string username = "user";
        string password = "password";
        request.Credentials = new NetworkCredential(username, password);
        request.UsePassive = true;
        request.UseBinary = true;
        request.KeepAlive = false;

        FileInfo file = new FileInfo(filePath);
        request.ContentLength = file.Length;
        int buffLength = 2048;
        byte[] buff = new byte[buffLength];
        int contentLen;

        FileStream fs = file.OpenRead();

        Stream strm = request.GetRequestStream();
        contentLen = fs.Read(buff, 0, buffLength);
        while(contentLen !=0 )
        {
            strm.Write(buff, 0, contentLen);
            contentLen = fs.Read(buff, 0, buffLength);
        }

        strm.Close();
        fs.Close();


6 commentaires

Je ne peux rien voir. La seule différence est que vous utilisez USEPASSAssive dans votre solution C #. Pour éviter les erreurs, vous pouvez utiliser set-strictmode -version ... pour éviter les variables non initialisées (= TYPOS), mais dans ce cas, je pense que cela n'apportera rien de nouveau.


Salut Stej, merci pour la réponse. Je suis content que ce n'est pas seulement moi, j'ai essayé de reproduire le C # dans PowerShell.


De nombreuses erreurs mènent au "problème $" avec des citations doubles :)


Merci d'avoir posté la modification de la modification. Cela m'a juste aidé, comme notre mot de passe contenait également un dollar.


D'accord, votre édition m'a résolu pour moi aussi! Merci.


Donc. 6 ans plus tard ... vous devriez répondre à votre propre question et la marque répondit ... Donc, il ira donc en haut de la liste des questions sans réponse.


3 Réponses :


2
votes

de l'affiche originale JON :

résolu, nouveau, ce serait quelque chose de stupide. Le mot de passe avait un signe "$", il était dans des guillemets doubles mais je ne me suis pas réalisé qu'il faudrait être échappé, je ne l'ai pas pensé du tout. Ironiquement je devais changer le mot de passe, etc. de manière à pouvoir poster.


0 commentaires

1
votes

Supprimez simplement la double citation du nom d'utilisateur ou de mot de passe parce que parfois $ signe cause problème. C'est bon d'utiliser une citation unique à chaque fois.


0 commentaires

3
votes

Dans mon cas, la raison était que le serveur FTP nécessitait SSL. Changer cette propriété sur la demande résolvée mon problème:

request.EnableSsl = true;


0 commentaires