1
에 의해
을 큰 파일을 업로드하고 서버 (300 ~ MB)에 파일을 업로드하려고에 대한 예외,하지만 난 파일의 거의 100 메가 바이트 옮겼다 된 오류 다음 얻을 :내가 FTP 클라이언트를 만들고있어 FTP
The underlying connection was closed: An unexpected error occurred on a receive.
을
여기 내 코드입니다 : 내가 사용하려고
private void UploadFile(string filepath, string filename)
{
try
{
FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create("ftp://" + server + "/" + filename);
//ftp.KeepAlive = false;
//ftp.Timeout = 1000000;
//ftp.UsePassive = true;
//ftp.ReadWriteTimeout = 100000;
Path.GetFileName(filepath);
ftp.Credentials = new NetworkCredential(username, password);
ftp.Method = WebRequestMethods.Ftp.UploadFile;
FileStream stream = File.OpenRead(filepath);
byte[] buffer = new byte[stream.Length];
stream.Read(buffer, 0, buffer.Length);
stream.Close();
Stream requestStream = ftp.GetRequestStream();
//requestStream.ReadTimeout = 1000000;
//requestStream.WriteTimeout = 1000000;
requestStream.Write(buffer, 0, buffer.Length);
requestStream.Close();
FtpWebResponse response = (FtpWebResponse)ftp.GetResponse();
response.Close();
}
catch (Exception ex) { CreateRunLogFile(ex.Message); }
CreateRunLogFile("Uploading of file " + filepath + " ended.");
}
,
ftp.KeepAlive = false;
ftp.Timeout = 1000000;
ftp.UsePassive = true;
그러나 그것은 도움이되지 않았다.
파일이 전송되고 있습니까? 이것은 실제로 아무 것도 잘못된 컨트롤 채널의 타임 아웃 일 수 있습니다. 또한 FTP 클라이언트 (예 : FileZilla)를 사용하여 동일한 파일을 업로드하려고 시도 했습니까? 어떤 행동이 보이나요? – JamieMeyer
@JamieMeyer 아니요, 프로그램이 Exeption 파일 전송이 끝날 때 종료합니다. 제어 채널과 관련하여 이해가 안됩니다. FileZilla 및 WinSCP로 업로드하려고했으나 파일이 성공적으로로드되었습니다. 한 번 더, 업로드 한 지 100 초가 지나면 예외가 발생했습니다. – vasa911
설정 한 시간 초과 값은 밀리 초 단위이며, 이는 진행 상황을 설명합니다. 또한 문서화 된 기본값과는 달리 기본값이기도합니다. -1로 설정하고 다시 시도하십시오. 이 도움이 될 수 있습니다 : http://www.sidesofmarch.com/index.php/archive/2012/04/06/damn-the-documentation-ftpwebrequest-timeout-default-value-is-not-infinite/ – JamieMeyer