【问题标题】:ftp upload not workingftp上传不工作
【发布时间】:2011-02-13 01:40:17
【问题描述】:

我正在尝试将文件从本地文件夹上传到 ftp 服务器文件夹,这在使用 filezilla 时可以正常工作。 我不断收到此错误:

引用: 远程服务器返回错误:(550) 文件不可用(例如,找不到文件,无法访问)。 代码:

'....ftppath = "tp://192.xxx.xx.xx/%2f/feedb/gnip/

      Public Sub uploadFTP(ByVal ftpPath As String, ByVal localPath As String, 
           ByVal username As String, ByVal psswd As String)
      Dim item As String = String.Empty
      item = "F20110210022920.xml"
      Try
        Dim fs As FileStream = File.OpenRead(localPath & item)
        Dim buffer As Byte() = New Byte(fs.Length - 1) {}
        fs.Read(buffer, 0, buffer.Length)
        fs.Close()


        Dim clsRequest As System.Net.FtpWebRequest = DirectCast(System.Net.WebRequest.Create(ftpPath & item), System.Net.FtpWebRequest)
        clsRequest.Credentials = New System.Net.NetworkCredential(username, psswd)
        clsRequest.KeepAlive = False
        clsRequest.Proxy = Nothing
        clsRequest.Method = System.Net.WebRequestMethods.Ftp.UploadFile
        clsRequest.Timeout = 10000
        Dim bFile() As Byte = File.ReadAllBytes(localPath & item)
        Dim clsStream As Stream = clsRequest.GetRequestStream()
        clsStream.Write(bFile, 0, bFile.Length)
        clsStream.Close()
        clsStream.Dispose()


    Catch ex As Exception

    End Try

【问题讨论】:

    标签: visual-studio-2008 ftp


    【解决方案1】:

    我没有答案,但我确实有一种方法可以用来找到答案...下载并安装数据包嗅探器并观察 ftp 流量。控制通道对话应该不难理解。看看你的对话和 filezilla 的对话有什么区别,你应该能够弄清楚。

    【讨论】:

      【解决方案2】:

      如果您还没有,请获取 WireShark 的副本并检查 FileZilla 和您的自定义客户端发送的数据包。从这里您将能够检查工作请求和非工作请求。通过分析差异,您应该能够确定需要修复什么才能使事情正常进行。

      【讨论】:

      • 我可以只使用提琴手吗?好吧,没关系,我猜那是针对http请求的
      【解决方案3】:

      已解决的问题...

      clsrequest.usepassive = true
      frequest.usebinary = false
      

      并在 ftp 路径中包含子文件夹

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-08-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-28
        相关资源
        最近更新 更多