0
다음 코드를 사용하여 FTP 서버에서 파일을 다운로드하고 있습니다. 그러나 무엇을하더라도, 나는 항상 타임 아웃 메시지를 받는다.Axapta 2012 - FTP에서 파일 다운로드 - 시간 초과
ftpo = System.Net.WebRequest::Create("ftp://myserver.com/subFolder/filename.txt");
request = ftpo;
credential = new System.Net.NetworkCredential(_user, _password);
request.set_Credentials(credential);
request.set_KeepAlive(false);
request.set_Method(_ftpMethod);
request.set_UsePassive(true);
request.set_UseBinary(true);
request.set_Timeout(600000);
request.set_ReadWriteTimeout(600000);
ftpResponse = request.GetResponse();
response = ftpResponse;
reader = new System.IO.StreamReader(response.GetResponseStream());
if(reader)
{
readString = reader.ReadToEnd();
}
if(readString)
{
writer = new System.IO.StreamWriter(_destination);
writer.Write(readString);
writer.Flush();
writer.Close();
}
작업이 초과되었습니다
오류 메시지.
파일은 9kB입니다. Filezilla를 통해 다운로드하면 1 초가 걸립니다. 제한 시간은 10 분으로 설정됩니다.
이 메시지의 원인은 무엇입니까? (FTP 서버에 액세스 할 수 없습니다)이 디버깅하는 방법에 대한 모든 아이디어가 있습니다.
업데이트 : C에서 동일한 코드가 정상적으로 실행됩니다.
FtpWebRequest ftpRequest;
var request = WebRequest.Create("ftp://server.com/folder/file.txt");
ftpRequest = (FtpWebRequest) request;
request.Credentials = new NetworkCredential("", "");
request.Method = "RETR";
ftpRequest.KeepAlive = false;
ftpRequest.UsePassive = true;
ftpRequest.UseBinary = true;
FtpWebResponse response = (FtpWebResponse)ftpRequest.GetResponse();
var reader = new StreamReader(response.GetResponseStream());
var result = "";
if(reader != null)
{
result = reader.ReadToEnd();
var writer = new StreamWriter(@"C:\temp\outfile.txt");
writer.Write(result);
writer.Flush();
writer.Close();
}
하면, 배치 서버에서 AX 코드를 실행을? 'myserver.com'이름, 닫힌 포트 번호 21/방화벽 설정 (및 'C : \ temp \'경로가 존재하지 않을 수도 있음)을 해결할 수없는 등의 차이가있을 수 있습니다. –