使用ftpWebRequest时出错:远程服务器返回错误530未登录

我试图在c#中使用ftpWebRequest我的代码是

// Get the object used to communicate with the server. FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://192.168.20.10/file.txt"); request.Method = WebRequestMethods.Ftp.UploadFile; // This example assumes the FTP site uses anonymous logon. request.Credentials = new NetworkCredential("dev\ftp", "devftp"); // Copy the contents of the file to the request stream. StreamReader sourceStream = new StreamReader(@"\file.txt"); byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd()); sourceStream.Close(); request.ContentLength = fileContents.Length; request.UsePassive = true; 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(); 

我在request.GetRequestStream()中得到一个错误; 错误是:远程服务器返回错误530未登录如果我尝试进入浏览器页面并在我写的urlftp://192.168.20.10/眉毛页面问我输入名称和密码,我把相同的名称和密码,我看到ftp文件夹中的所有文件和文件夹。

不应该行:

 request.Credentials = new NetworkCredential("dev\ftp", "devftp"); 

是:

 request.Credentials = new NetworkCredential("dev\\ftp", "devftp"); 

要么:

 request.Credentials = new NetworkCredential(@"dev\ftp", "devftp"); 

我不得不相信这可能会导致您的问题,因为\ f是换页符。

面对同样的问题,这是我的解决方案:

 request.Credentials = new NetworkCredential( usernameVariable.Normalize(),passwordVariable.Normalize(),domainVariable.Normalize()); 

细节可以在这里找到

希望能帮助到你。

我发现当通过.NET / C#连接到FTP服务器时,某些字符不是“有效”。 将登录凭据设置为仅仅字母和数字[a-Z0-9]后,它才能登录。

只需从用户名或密码中删除双引号,因为有时$ sign用户名或密码会导致问题。 每次使用单引号都很好。