错误.Net VB - 远程服务器返回错误:(501)参数或参数中的语法错误

时间:2012-08-14 16:10:49

标签: .net vb.net ftp

我编写了一段代码,仅用于测试将带有ASCII类型的txt文件发送到FTP服务器,但不断出现以下错误。

远程服务器返回错误:(501)参数或参数中的语法错误。

我确定用户名和密码是正确的,我尝试将UsePassive设置为true和false,但是会出现相同的错误。

以下是我使用的代码。

Imports System.IO
Imports System.Text
Imports System.Net

Module Module1

Sub Main()
    Dim lPOSByteArray() As Byte
    Dim lEncoding As New ASCIIEncoding
    Dim lPOSFlatFile As String
    lPOSFlatFile = System.IO.File.ReadAllText("C:\\Users\\somebody\\Desktop\\Test.config.XML")
    lPOSByteArray = lEncoding.GetBytes(lPOSFlatFile)

    Dim lFTPrequest As System.Net.FtpWebRequest

    lFTPrequest = DirectCast(WebRequest.Create("ftp://" & "199.222.111.111" & "/" & "Test.txt"), System.Net.FtpWebRequest)
    lFTPrequest.Proxy = Nothing
    lFTPrequest.Credentials = New NetworkCredential("userxxx", "passyyy")
    lFTPrequest.Method = WebRequestMethods.Ftp.UploadFile
    lFTPrequest.UseBinary = False
    lFTPrequest.UsePassive = True
    lFTPrequest.ContentLength = lPOSByteArray.Length

    'ERROR happened on following line
    Dim lFTPrequestStream As Stream = lFTPrequest.GetRequestStream()
    lFTPrequestStream.Write(lPOSByteArray, 0, lPOSByteArray.Length)
    lFTPrequestStream.Close()

    Dim response As System.Net.FtpWebResponse = DirectCast(lFTPrequest.GetResponse(), System.Net.FtpWebResponse)

End Sub

结束模块

1 个答案:

答案 0 :(得分:0)

我认为你的代码是正确的。问题出在另一个地方,比如网络或ftp服务器。我尝试使用我的FTP服务器并更改了行

 lPOSByteArray = lEncoding.GetBytes(lPOSFlatFile)

 lPOSByteArray = lEncoding.GetBytes("test")

并且工作正常。你能用像FileZila这样的ftp客户端读/写这个文件吗?