Benutzer mit den meisten Antworten
Inet schmiert ab

Frage
-
Hallo,
ich werkle gerade an einer Anwendung unter Verwendung des Inet-Objekts, bei
der alle 5 Sekunden eine Datei vom FTP-Server abgeholt wird. Das
funktioniert eigentlich ganz gut, aber nach einer gewissen Laufzeit bleibt
das Programm hängen, und der Debugger meldet mir, dass die nächste
Inet-Anweisung nicht asugeführt werden kann. Wenn ich von Hand einen
weiteren Inet-Befehl erzwinge, erfahre ich vom Debugger: Das Inet-Objkekt
wurde von den Clients getrennt. Erst der Neustart des Programms löst das
Problem, allerdings wird dadurch die gesammte Anwendung sinnlos.
Da das Ereignis sehr unregelmäßig eintrifft (manchmal nach drei Minuten,
manchmal nach einer halben Stunde), gehe ich davon aus, dass der FTP-Server
manchmal irgend eine Zugriffsverzögerung erzeugt und das Inet-Objekt damit
nicht umgehen kann. Da die Anwendung später einmal von allen möglichen
Anwendern an allen möglichen FTP-Servern genutzt werden soll, bräuchte ich
eine stabile Routine, die mit allen Unwägbarkeiten der FTP-Servers umgehen
kann.
Der Grund kann allerdings auch ein ganz anderer sein, auf den ich nicht
komme.
Hat jemand eine Idee?
Danke,
Emil
- Verschoben Thorsten DörflerModerator Sonntag, 6. Juni 2010 20:32 Thema VB6 (aus:Visual Basic (ab Version 2002 / .NET))
Antworten
-
Hallo Emil,
zunächst zur Klärung: Womit programmierst Du da gerade (VB.NET, VB Classic, VBA/ VB Script)?
Empfohlene GetFTPFile beim Inet-Object, siehe Alternatives to the INet Object
(auch wenn an etwas unpassender Stelle genannt)Gruß Elmar
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 10. Juni 2010 11:02
-
Hallo Emil,
URL ist hier im Sinne eines GET Request für HTTP zu verstehen.
Übergibst Du eine URL mit ftp: kannst Du darüber einen FTP Request durchführen.
Dem XMLHTTP ist ein Wikipedia Artikel und ein Wikibook "gewidmet",
da Grundlage für Ajax und Co.Gruß Elmar
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 10. Juni 2010 11:02
Alle Antworten
-
Hallo Emil,
zunächst zur Klärung: Womit programmierst Du da gerade (VB.NET, VB Classic, VBA/ VB Script)?
Empfohlene GetFTPFile beim Inet-Object, siehe Alternatives to the INet Object
(auch wenn an etwas unpassender Stelle genannt)Gruß Elmar
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 10. Juni 2010 11:02
-
Hallo Emil,
Im folgenden Beispiel konnte ich eine Datei von dem FTP Server herunterladen (VB.NET).
Es wurden verwendet das BackgroundWorker Steuerelement und einige Funktionen aus wininet.dll (wir sind in der asynchronen Welt und da kann etwas länger oder weniger dauern aber Du hast einen Fixen Takt für das herunterladen von 5 Sekunden).
Du kannst prüfen wenn eine Datei fertig heruntergeladen ist einen Neuen Download starten usw.
Grüße,
Robert
-
Hallo Elmar,
sorry, das habe ich vergessen: Ich arbeite mit VB6.
Also, bei der in dem Artikel angeführten Alternative verstehe ich etwas nicht. Diese Funktion wird angeführt:
Function GetHTTPFile(strURL)
Dim objXML
Dim strHTTPResponse
Set objXML = CreateObject("Msxml2.XMLHTTP")
Call objXML.Open("GET", strURL, False)
Call objXML.Send()
strHTTPResponse = objXML.responseText
Set objXML = Nothing
GetHTTPFile = strHTTPResponse
End Function
Aber strURL wird nicht definiert und nicht erklärt. Die Variable wird bei mir als Integer angezeigt, aber das macht irgendwie keinen Sinn. Ist das nicht der Pfad der Remotedatei? Und wo lege ich den lokalen Dateinamen für die heruntergeladenen Datei fest?Kannst Du mir vielleicht ein kurzes Codebeispiel geben, wie die Funtkion angewandt wird?
Danke,
Emil -
Hallo Emil,
URL ist hier im Sinne eines GET Request für HTTP zu verstehen.
Übergibst Du eine URL mit ftp: kannst Du darüber einen FTP Request durchführen.
Dem XMLHTTP ist ein Wikipedia Artikel und ein Wikibook "gewidmet",
da Grundlage für Ajax und Co.Gruß Elmar
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 10. Juni 2010 11:02