Dies ist ein wenig schwierig.Statuscode von FTPWebRequest.GetResponse() Methode
Ich lade Dateien asynchron auf FTP hoch. Nach dem Hochladen jeder Datei überprüfe ich den Status des Hochladevorgangs für diese Datei. Dies kann mit der StatusCode-Eigenschaft des FtpWebResponse-Objekts für diese Anforderung erfolgen. Das Code-Snippet ist wie unten angegeben.
FileStream fs = File.Open(fileName, FileMode.Open);
while ((iWork = fs.Read(buf, 0, buf.Length)) > 0)
requestStream.Write(buf, 0, iWork);
requestStream.Close();
FtpWebResponse wrRet = ((FtpWebResponse)state.Request.GetResponse());
Es gibt etwa 37 StatusCode-Werte gemäß msdn. Mir ist nicht bewusst, welche dieser Statuscodewerte sicherstellen, dass die Datei erfolgreich hochgeladen wird. Einige von ihnen, dass ich in meinem Code verwenden für den Erfolg zu überprüfen sind:
wrRet.StatusCode == FtpStatusCode.CommandOK
wrRet.StatusCode == FtpStatusCode.ClosingData
wrRet.StatusCode == FtpStatusCode.ClosingControl
wrRet.StatusCode == FtpStatusCode.ConnectionClosed
wrRet.StatusCode == FtpStatusCode.FileActionOK
wrRet.StatusCode == FtpStatusCode.FileStatus
Aber ich bin keine Kenntnis von der Ruhe. Ich muss mich über diese Codes sicher sein, da ich aufgrund des Fehlers oder des Erfolgs des Upload-Vorgangs andere abhängige Operationen ausführen muss. Eine falsche Bedingung kann sich auf den verbleibenden Code auswirken. Ein anderer Gedanke, der mir in den Sinn kam, war, den obigen Code einfach in einen try..catch zu setzen und nicht von diesen Statuscodes abhängig zu sein. Damit wäre ich nicht von den Statuscodes abhängig und davon ausgegangen, dass ein Fehler immer auf den Catch-Block gerichtet ist. Bitte lassen Sie mich wissen, ob dies der richtige Weg ist.
Ich hatte meine Probleme mit FTP-Servern. Ich würde mit einer pragmatischen Lösung gehen und einfach überprüfen, ob die Datei, die gerade auf den Server hochgeladen wurde, nach dem Hochladen wieder gefunden wird. Ich weiß, dass es die Frage nicht beantwortet - aber ich kam gerade zu der Schlussfolgerung, dass ich der Antwort der FTP-Server nicht vertrauen konnte – MacGyver