【问题标题】:connecting to FTP server - The remote server returned an error: (550)连接到 FTP 服务器 - 远程服务器返回错误:(550)
【发布时间】:2014-05-02 15:32:23
【问题描述】:

当我调用函数 sendFile2FTP 时,我收到错误“远程服务器返回错误:(550) 文件不可用(例如,找不到文件,无法访问)。” >

    Function sendFile2FTP(fileNameLocal As String, fileNameServer As String, user As String, password As String) As String


        Dim ftpRequest As Net.FtpWebRequest = Net.WebRequest.Create(fileNameServer)
        ftpRequest.Credentials = New Net.NetworkCredential(user, password)
        ftpRequest.Method = Net.WebRequestMethods.Ftp.UploadFile
        Try
            Dim ficheiro() As Byte = System.IO.File.ReadAllBytes(fileNameLocal)
            Dim ftpStream As System.IO.Stream = ftpRequest.GetRequestStream()
            ftpStream.Write(ficheiro, 0, ficheiro.Length)
            ftpStream.Close()
            ftpStream.Dispose()

            Return "True"
        Catch ex As Exception
            Return ex.Message

        End Try

  End Function

这是我发送给函数的参数(都是有效的)

fileNameLocal -> C:\Users\user\Documents\Visual Studio 2013\Projects\AgenteExportDebitosCC\AgenteExportDebitosCC\bin\Debug\file02-05-2014.xml

fileNameServer -> ftp://ftp.server.com/intranet/file02-05-2014.xml
用户 -> 用户

密码->密码

我做错了什么?

编辑:

我不确定这是否是权限问题,但我可以使用相同的凭据使用 filezilla 创建文件...

【问题讨论】:

  • 检查您发送的远程路径以及您在服务器端确实具有写入权限。你的 fileNameServer 参数真的是整个字符串ftp://ftp.server.com/intranet/file02-05-2014.xml吗?
  • 我刚刚在您提出问题之前编辑了帖子。我可以使用 Filezilla 创建文件。根据filezilla,该特定文件夹的权限设置为“777”。文件名是存储在“.exe.config”中的 ftp 文件夹的完整路径和文件名(存在于本地存储中)的串联。

标签: sql-server vb.net .net-4.0 ftp


【解决方案1】:

问题与 ftp 地址有关。而不是

ftp://ftp.server.com/intranet/file02-05-2014.xml

我必须使用地址中的用户名

ftp://username@ftp.server.com/server.com/intranet/file02-05-2014.xml

【讨论】: