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();
}
ローカルマシン上のC#のコードを実行しながら、あなたは、バッチサーバからAXのコードを実行していますか? 'myserver.com'の名前、ポート番号21 /ファイアウォールの設定(および 'C:\ temp \'ルートが存在しない可能性があります)を解決できないなどの違いがあります。 –