Hi @all,
ich verzweifle.....!!!!
ich führe asynchronen einen dateitransfer mittels ftp aus und warte solange darauf bis der vorgang beendet ist - wie auch immer.
folgende implemtentierung bei der übertragung einer datei:
FTPState endStreamState = (FTPState)ar.AsyncState;
Stream requestStream = null;
try
{
// End the asynchronous call to get the request stream.
requestStream = endStreamState.Request.EndGetRequestStream(ar);
// Copy the file contents to the request stream.
const int bufferLength = 2048;
byte[] buffer = new byte[bufferLength];
int count = 0;
int readBytes = 0;
// open the file to read
FileStream stream = File.OpenRead(endStreamState.FileName);
// ...
do
{
// Read in data of file
readBytes = stream.Read(buffer, 0, bufferLength);
// Write data to server
requestStream.Write(buffer, 0, readBytes);
count += readBytes;
//...
Wann kommt ein Fehler:
kann nicht genau definiert werden er kam ...
1.) datei ca 300 mb
2.) datei mit 70 mb
--> Ich habe jedoch dateien > 300 mb und > 500 mb bereits erfolgreich übertragen bevor der fehler kommt
was sagt der fehler:
IOException:
Message:
{"In die Übertragungsverbindung können keine Daten geschrieben werden: Eine vorhandene Verbindung wurde vom Remotehost geschlossen."}
Inner Exception:
"Eine vorhandene Verbindung wurde vom Remotehost geschlossen
System.Net.Sockets.SocketException: Eine vorhandene Verbindung wurde vom Remotehost geschlossen
ErrorCode: 10045
SocketErrorCode: Connection Reset
Fehler wird erzeugt bei Metode "Write(Byte[], int32, int32)
// Write data to server
requestStream.Write(buffer, 0, readBytes);
ex.ToString():
System.IO.IOException: In die Übertragungsverbindung können keine Daten geschrieben werden: Eine vorhandene Verbindung wurde vom Remotehost geschlossen. ---> System.Net.Sockets.SocketException: Eine vorhandene Verbindung wurde vom Remotehost geschlossen
bei System.Net.Sockets.Socket.Send(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
bei System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size)
--- Ende der internen Ausnahmestapelüberwachung ---
bei System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size)
bei System.Net.FtpDataStream.Write(Byte[] buffer, Int32 offset, Int32 size)
bei ...FTP.EndGetStreamCallback(IAsyncResult ar) in Laufwerk\pfad\...\FTP.cs:Zeile 571.
kann mir einer sagen an was das liegt???? X(
greets
mex
que? como? no entiendo!!!!!
danke für die antwort...
das würde sowas bedeuten wie:
the underlying connection was closed....
ich würde gerne wissen warum das passiert!
greets
mex
que? como? no entiendo!!!!!
Ja also ich seh bei meinem ftp client auch das die verbindung nach n Sekunden geschlossen wird während einer übertragung einer sehr grossen Datei, das hält ihn aber nicht davon ab die datei noch zu ende zu übertragen. Vielleicht ist die CopyTo Methode da tatsächlich hilfreicher - teste das mal.