0

我有一段非常简单的代码。一切都写得正确,没有错别字,我和同事聊天,但我们俩根本不知道错误在哪里。

它顺利通过直到出现异常的 GetRequestStream() 。它找到文件,对其进行正确编码,但似乎无法与服务器连接。

这是代码:

public class WebRequestUploadExample
{
    public  void WebRequestUpload()
    {


    // Get the object used to communicate with the server.
        FtpWebRequest request = (FtpWebRequest)WebRequest.Create(@"ftp://xxxxx");
        request.Method = WebRequestMethods.Ftp.UploadFile;

        // This example assumes the FTP site uses anonymous logon.
        request.Credentials = new NetworkCredential("xxxxx", "xxxxx");

        // Copy the contents of the file to the request stream.
        StreamReader sourceStream = new StreamReader(@"D:\ftpTest\Test\Test.txt");
        byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
        sourceStream.Close();
        request.ContentLength = fileContents.Length;

        Stream requestStream = request.GetRequestStream();
        requestStream.Write(fileContents, 0, fileContents.Length);
        requestStream.Close();

        FtpWebResponse response = (FtpWebResponse)request.GetResponse();

        Console.WriteLine("Upload File Complete, status {0}", response.StatusDescription);

        response.Close();

    }
}
4

1 回答 1

1

可能是您的目标服务器不支持“被动”模式。您是否尝试过主动模式?request.UsePassive = false;

FtpWebRequest.UsePassive

于 2017-10-13T12:32:38.837 回答