Ich habe einen FTP-Client erstellt, der mehrmals am Tag eine Verbindung herstellt, um Logdateien von einem FTP-Server abzurufen.
Das Problem ist, dass ich nach einigen Stunden eine Fehlermeldung vom FTP-Server erhalte (-421 Sitzungslimit erreicht...). Wenn ich die Verbindungen mit netstat überprüfe, sehe ich mehrere 'ETABLIERTE' Verbindungen zum Server, obwohl ich die Verbindung "geschlossen" habe.
Wenn ich dasselbe über die Befehlszeile oder FileZilla versuche, werden die Verbindungen ordnungsgemäß geschlossen.
ftpRequest = (FtpWebRequest)FtpWebRequest.Create(host + "/" + remoteFile);
ftpRequest.Credentials = new NetworkCredential(user, pass);
ftpRequest.UseBinary = true;
ftpRequest.UsePassive = true;
ftpRequest.KeepAlive = true;
ftpRequest.Method = WebRequestMethods.Ftp.DownloadFile;
ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();
ftpStream = ftpResponse.GetResponseStream();
FileStream localFileStream = new FileStream(localFile, FileMode.Create);
int bytesRead = ftpStream.Read(byteBuffer, 0, bufferSize);
/* Ressourcenfreigabe */
localFileStream.Close();
ftpStream.Close();
ftpResponse.Close();
ftpRequest = null;
Wie kann ich die Verbindung ordnungsgemäß schließen/trennen? Habe ich etwas vergessen?