我收到此錯誤「遠程服務器返回錯誤:(530)未登錄。」同時使用FtpWebRequest上傳文件。只有當我將文件轉移到其子文件夾的路徑發生
FtpWebRequest返回「遠程服務器返回錯誤:(530)未登錄」
- 錯誤,否則它完全工作正常。
上傳大約5到10 MB的大文件時,超時。
void FtpTransfer(string siteName, string portNumber, string ftpUser, string ftpPassword, string destPath) { FtpWebRequest request; DateTime now = DateTime.Now; string now_string = (now.Year).ToString() + "_" + (now.Month).ToString("0#") + "_" + (now.Day).ToString("0#"); foreach (object item in listBox1.Items) { string srcFile = item.ToString(); lblSource.Text = srcFile; Uri uri = new Uri(srcFile); string destFile = srcFile.Replace(lblPath.Text, "").Replace("\\\\", "\\").Replace("\\", "/").Replace("www/",""); Configuration oConfig = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); int timeout = int.Parse(oConfig.AppSettings.Settings["TimeOut"].Value); if (siteName == "mysite1.co.in" || siteName == "sd1.mysite2.net") destFile = "ftp://" + siteName + ":" + portNumber + "/" + siteName + "/_test" + destFile; //error here else destFile = "ftp://" + siteName + ":" + portNumber + "/" + siteName + destFile; //no error lblDestn.Text = destFile; request = (FtpWebRequest)WebRequest.Create(destFile); request.Credentials = new NetworkCredential(ftpUser, ftpPassword); request.Timeout = 6000; request.Method = WebRequestMethods.Ftp.UploadFile; request.UsePassive = true; request.UseBinary = true; request.KeepAlive = true; // Copy the contents of the file to the request stream. StreamReader sourceStream = new StreamReader(@srcFile); 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(); string path = System.IO.Path.GetDirectoryName(Environment.GetCommandLineArgs()[0]); System.IO.StreamWriter w = System.IO.File.AppendText(path + "\\log_" + now_string + ".txt"); w.WriteLine(DateTime.Now.ToString("yyy-MM-dd HH:mm:ss") + " " + srcFile + " " + destFile + " " + response.StatusDescription); w.Close(); response.Close(); }
它使用FileZilla的工作完全正常。 – vasanthkumar
那麼,你有沒有wireshark你的代碼運行? –
是的,我做過。雖然我不是使用wireshark的專家,但是我看到了正確發送的用戶名和密碼以及從服務器返回的相同響應。 – vasanthkumar