Windowsサービスでftpに問題があります。私はftpを通してファイルを送る仕事を予定しています。一度私はタイムアウト(周波数は週に1回、たぶん1ヶ月に1回)しており、Windowsサービスを再起動するまで続きます。スケジュールされたWindowsサービスで一貫したFTPタイムアウト
System.Net.WebException:操作がタイムアウトしました。
私は例外を処理しています。最後に開いたftpセッションを閉じます。
try
{
string uri = String.Format("ftp://{0}/{1}/{2}", server, download, file);
Uri serverUri = new Uri(uri);
if (serverUri.Scheme != Uri.UriSchemeFtp)
{
return;
}
FtpWebRequest reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));
reqFTP.Credentials = new NetworkCredential(username, password);
reqFTP.KeepAlive = false;
reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
reqFTP.EnableSsl = false;
reqFTP.Proxy = null;
reqFTP.UsePassive = true;
reqFTP.Timeout = Settings.Default.TimeOut;
reqFTP.ReadWriteTimeout = Settings.Default.TimeOut;
response = (FtpWebResponse)reqFTP.GetResponse();
responseStream = response.GetResponseStream();
using (FileStream writeStream = new FileStream(path + file, FileMode.Create))
{
int Length = 10240;
Byte[] buffer = new Byte[Length];
int bytesRead = responseStream.Read(buffer, 0, Length);
while (bytesRead > 0)
{
writeStream.Write(buffer, 0, bytesRead);
bytesRead = responseStream.Read(buffer, 0, Length);
}
}
response.Close();
}
catch (WebException wEx)
{
LogDatabase.WriteLog("Download File", wEx.ToString(), "Download File");
}
finally
{
if (response != null)
{
response.Close();
}
if (responseStream != null)
{
responseStream.Close();
}
}
thnxです。
これはサーバー上の問題のようです...おそらく、他の要求を処理していて、最大数の接続に達しています...サーバー上のコントロールはありますか?例外がスローされたときに接続されたクライアントの数を確認できますか? – Gabber
私は許可されていないため、サーバーにアクセスできないしかし、私が知っているように、それはこの仕事のためだけに使われる専用のサーバーです。 – Florjon
あなたはなぜこれを理解しましたか?私は同じ問題を抱えています。私もサービスを再開する必要があります。 – user1932634