Laden...

Fehler beim Teildownload von einem FTP

Erstellt von DiViP vor 14 Jahren Letzter Beitrag vor 14 Jahren 929 Views
D
DiViP Themenstarter:in
27 Beiträge seit 2009
vor 14 Jahren
Fehler beim Teildownload von einem FTP

Hallo,

beim Laden eines Teiles einer Gesamtdatei tritt ein Fehler auf, wenn die Datei größer ist als 13.241 Bytes. Der Fehler scheint Server abhängig zu sein, da er bisher nur auf BPlaced.net auftritt. Der Fehler tritt auf bei Stream.Close bzw. Response.Close. Wenn man die Datei komplett lädt tritt der Fehler nicht auf.

Fehlermeldung:
Der Remoteserver hat einen Fehler zurückgegeben: 150 1.870 seconds (measured here), 51.35 Kbytes per second\r\n.
InnerException:
Der Vorgang ist für nicht verbundene Sockets unzulässig.

Es folgt der vereinfachte Code mit dem das Problem auftritt.


public static bool DownloadFile(Uri serverUri)
{

FtpWebRequest request = (FtpWebRequest)WebRequest.Create(serverUri);
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.ContentOffset = 100;

FtpWebResponse response = (FtpWebResponse)request.GetResponse();

Stream responseStream = null;
StreamReader readStream = null;

responseStream = response.GetResponseStream();
readStream = new StreamReader(responseStream);

Console.WriteLine("Bytes received: {0}", response.ContentLength);
Console.WriteLine("Message from server: {0}", response.StatusDescription);
Console.WriteLine("Resource: {0}", response.ResponseUri);

if (readStream != null)
{
char[] buffer = new char[200];
Console.WriteLine("Bytes: " + readStream.Read(buffer, 0, 200));
}
readStream.Close(); // -> hier tritt die Exception auf
response.Close(); // -> hier tritt die Exception auf
return true;
}

Wenn man die Close Methoden überspringt, kann man ganz normal weitermachen und weitere Dateiteile herunterladen. Nur kann das nicht die richtige Lösung sein.

Weiß jemand eine Lösung ?