ftp上传无法正常工作

时间:2011-02-13 01:40:17

标签: visual-studio-2008 ftp

我正在尝试将文件从本地文件夹上传到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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

已解决的问题......

clsrequest.usepassive = true
frequest.usebinary = false

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