代码之家  ›  专栏  ›  技术社区  ›  magol Nathaniel Roark

get“远程服务器返回错误:(500)语法错误,命令无法识别”当我尝试运行ftpwebrequest.getrequeststream时

  •  2
  • magol Nathaniel Roark  · 技术社区  · 15 年前

    我有以下代码可以将文件发送到FTP服务器。

    function FtpUploader(
      [string]$uri,
      [string]$localeFile,
      [string]$user = "ftp",
      [string]$password = "ftp",
      [int]   $timeout  = 20000
    ){
        trap {
          Write-Host ("ERROR: " + $_) -Foregroundcolor Red
          return $false 
        }
    
        $ftp             = [System.Net.FtpWebRequest]::Create($uri)
        $ftp             = [System.Net.FtpWebRequest]$ftp
        $ftp.Method      = [System.Net.WebRequestMethods+Ftp]::UploadFile
        $ftp.Credentials = new-object System.Net.NetworkCredential($user, $password)  
        $ftp.Timeout     = $timeout
        $ftp.UseBinary   = $false
        $ftp.UsePassive  = $true
    
        $content         = Get-Content -en byte $localeFile
    
        $rs              = $ftp.GetRequestStream()
        $rs.Write($content, 0, $content.Length)
    
        $rs.Close()
        $rs.Dispose()
    
        return $true
    }
    

    我使用的URI是“ ftp://xxx.xxx.xxx.xxx/aaa/bbb/ccc/R1ACTIVE.TXT “。 ftp服务器是vsftpd

    大多数情况下,文件都是上传的。但有时当它尝试运行时,我会遇到以下错误 $ftp.GetRequestStream() 以下内容:

    远程服务器返回错误:(500)语法错误,命令无法识别。

    为什么????

    1 回复  |  直到 11 年前
        1
  •  2
  •   Adrian Toman Duncan_m    12 年前

    我用以下方法解决了这个问题:

    $ftp.KeepAlive = $false