Seite 1 von 1

LoadFromUrl und Timeout [erledigt]

Verfasst: Mo, 28. Aug 2017 16:09
von Scarmo
Hallo zusammen

Im Moment plage ich mich mit einem LoadFromUrl-Problem rum... Und zwar bricht mir genau nach 30 Sekunden der Server (bzw. LoadFromUrl) die Verbindung ab... Der Server benötigt für meine Auswertung jedoch ca. 70 Sekunden, was mit einem direkten Aufruf via Browser auch einwandfrei funktioniert.

Kann es sein, dass die Funktion LoadFromUrl() einen eigenen Timeout hat?

Bin für jeden Hinweis dankbar!

Gruss
Marco

Re: LoadFromUrl und Timeout

Verfasst: Mo, 28. Aug 2017 16:23
von Tom
Hallo, Marco.

70 Sekunden sind sehr viel. Ist das Dein eigener Server, der da antwortet, oder ein anderer? Im letzten Fall kann es sein, dass der Server weiß, dass er sehr lange brauchen wird, und inzwischen 0-Chunks sendet, um das Timeout zu unterbinden - aber Du reagierst nicht darauf. Ich habe noch nicht mit LoadFromUrl gearbeitet, mache aber mit Xb2.Net etwas sehr ähnliches - allerdings aus Serversicht. Wenn eine Funktion aufgerufen wird, die u.U. lange Zeit braucht, um die Antwort zu generieren, schickt der Server in einem 10-Sekunden-Rhythmus Dummy-Chunks ohne Daten, um die Verbindung aufrecht zu halten, bis die Antwort fertiggestellt ist. Allerdings muss der Client darauf reagieren, das also wissen. Die User-Funktion, die über Parameter 12 (bcUserFunc) scheint mir hierfür gedacht zu sein.

Re: LoadFromUrl und Timeout

Verfasst: Mo, 28. Aug 2017 16:33
von DelUser01
Hallo Marco,

starte doch LoadFromUrl() erst nach 1-2 Minuten wenn der Server vorher sowieso nichts rausgibt.

Re: LoadFromUrl und Timeout

Verfasst: Mo, 28. Aug 2017 16:37
von Tom
starte doch LoadFromUrl() erst nach 1-2 Minuten wenn der Server vorher sowieso nichts rausgibt.
Originelle Idee. Und woher weiß der Server, wonach er in ein bis zwei Minuten gefragt werden wird?

Re: LoadFromUrl und Timeout

Verfasst: Mo, 28. Aug 2017 16:43
von DelUser01
Tom hat geschrieben: Mo, 28. Aug 2017 16:37Und woher weiß der Server, wonach er in ein bis zwei Minuten gefragt werden wird?
Z.B.
1) zuerst mit LoadFromUrl() die Verarbeitung starten, der Server erstellt daraufhin eine Ergebnisdatei,
2) dann mit LoadFromUrl() die Ergebnisdatei abholen...

Re: LoadFromUrl und Timeout [erledigt]

Verfasst: Di, 29. Aug 2017 8:07
von Scarmo
Guten Morgen

Vielen Dank für die Inputs! Offenbar liegt der Timeout innerhalb von LoadFromUrl() bei 30 Sekunden (Windows-Standard). Ich habe nun mit der Funktion InternetSetOptionA(ic , INTERNET_OPTION_CONNECT_TIMEOUT, @nTimeout, 4) diesen Timeout höher gesetzt und siehe da, es klappt!! =D>

Wichtig ist einfach, dass der Funktions-Aufruf direkt nach dem InternetConnectA-Aufruf erfolgt (später kann der Timeout nicht mehr geändert werden...)!

Mir ist bewusst, dass 70 Sekunden für eine Auswertung seeeehr lange ist (normalerweise dauert es ca. 10 Sekunden), aber bei diesem Kunden sind so viele Daten auszuwerten, dass es einfach länger dauert!

Gruss
Marco

Re: LoadFromUrl und Timeout [erledigt]

Verfasst: Di, 29. Aug 2017 13:21
von brandelh
Ja für solche Änderungen ist die LoadFromUrl() Vorlage von Phil Klasse, die von der 1.90.xxx kann man ja nicht ändern.