Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Artikel hilft Ihnen, das Problem zu beheben, bei dem die Windows Internet -Funktion (WinINet) FtpPutFile
weiterhin TRUE zurückgibt, auch wenn der Vorgang mit dem Status 451 fehlschlägt.
Originalproduktversion: Internet Explorer 10, 9
Ursprüngliche KB-Nummer: 2790777
Symptome
Die Wininet.dll-API FtpPutFile
gibt WAHR zurück, auch wenn der Vorgang mit dem folgenden Status fehlschlägt:
451 – Angeforderte Aktion abgebrochen: lokaler Fehler bei der Verarbeitung.
Die Abfolge von Ereignissen, die zu diesem Ergebnis führen, ähnelt folgendem:
FTP:Response to Port 28376, '230 Login successful.'
FTP:Response to Port 28376, '200 Switch to ASCII mode.'
FTP:Request from Port 28376, 'PASV'
FTP:Response to Port 28376, '227 Entering Passive Mode (192,168,0,99,213,154).'
FTP:Request from Port 28376,'STOR myTesting.txt'
FTP:Response to Port 28376, '150 Ok to send data.'
(Jetzt werden Daten an 192.168.0.99 mit Port 256x213+154 = 54682 gesendet)
FTP:Response to Port 28376, '451 Failure writing to local file.'
Ursache
Die WinINet-Funktion FtpPutFile
(einschließlich sowohl als FtpPutFileW
auch FtpPutFileA
) meldet den Statuscode als WAHR, obwohl die interne WinINet-Implementierung der FtpPutFile
Funktion bereits die Fehlerantwort von 451 Fehler beim Schreiben in lokale Dateifehler vom Server erfasst hat.
Problemumgehung
Um dieses Problem zu umgehen, überprüfen Sie den RückgabestatuscodeFtpPutFile
, anstatt sich auf die API zu verlassen, die "False" zurückgibt. Um dies zu erreichen, können Sie die InternetGetLastResponseInfo()
Funktion verwenden, um die Serverantwort zu überprüfen.
Notiz
Das FTP-Protokoll kann zusätzliche Textinformationen zusammen mit den meisten Fehlern zurückgeben. Diese erweiterten Fehlerinformationen können mithilfe der InternetGetLastResponseInfo
Funktion abgerufen werden.