Ik was bezig met een ftp-programmatje in visual basic, nu wilde ik een cancel functie maken, dankzij het handig Inet control (Microsoft Internet Transfer Control 6.0 SP4)
hoef ik daar maar 1 functie voor aan te roepen.
dan krijg ik netjes in mijn ftp-serverlog
Dit ziet er goed uit, de connectie wordt "aborted"
Alleen in mijn programma bleeft het programma om een apparte manier hangen. Het programma blijft verder werken, maar er kunnen geen nieuwe connecties gemaakt worden via dat Inetcontrol, als ik het programma sluit blijft het process van dat programma op de achtergrond lopen, als ik het programma opnieuw start wil het geen internetverbinding maken totdat ik het oude process gekilled heb.
In debug mode met netjes overal door heen stappen lijkt alles goed te gaan, geen rare dingen totdat ik het programma probeer te sluiten, waar de code blijft staan op de laaste regel die toevallig uitgevoerd werd, deze nog uitvoert en dan niet het programma sluiten. (loopt wel netjes form_unload door)
Ik zit nu dus echt met een raadsel, voor de rest is er zover ik weet geen enkele manier om de Inet te laten stoppen. Ook google hielp me niet, ik vond 1 forum post uit 2003 met dezelfde symptonen icm een inet control, maar geen antwoorden, clue's of oplossingen/
Simpele code waar niks mis mee is zover ik zie...
hoef ik daar maar 1 functie voor aan te roepen.
Visual Basic:
1
| Inet.cancel |
dan krijg ik netjes in mijn ftp-serverlog
code:
1
2
3
4
5
6
7
8
9
10
11
| ... (000096) 26-7-2007 11:07:02 - database (192.168.1.3) > RETR test.vob (000096) 26-7-2007 11:07:02 - database (192.168.1.3) > asked to download 'D:\SalidaDatabase\test.vob' --> Access allowed. (000096) 26-7-2007 11:07:02 - database (192.168.1.3) > 150 Opening data connection for test.vob (331915264 bytes). (000096) 26-7-2007 11:07:02 - database (192.168.1.3) > started downloading 'D:\SalidaDatabase\test.vob'. (000096) 26-7-2007 11:07:02 - database (192.168.1.3) > aborted downloading 'D:\SalidaDatabase\test.vob' - (00:00:01 - 1288,000 KB - 1288,000 KBytes/s) (000096) 26-7-2007 11:07:02 - database (192.168.1.3) > 426 Cannot retrieve. Failed. Connection reset (10054). (000096) 26-7-2007 11:08:18 - database (192.168.1.3) > disconnected. (00:01:15) (000087) 26-7-2007 11:09:50 - database (192.168.1.3) > disconnected. (00:10:00) (000086) 26-7-2007 11:09:54 - database (192.168.1.3) > 421 Connection timed-out ! (000086) 26-7-2007 11:09:54 - database (192.168.1.3) > disconnected. (00:10:04) |
Dit ziet er goed uit, de connectie wordt "aborted"
Alleen in mijn programma bleeft het programma om een apparte manier hangen. Het programma blijft verder werken, maar er kunnen geen nieuwe connecties gemaakt worden via dat Inetcontrol, als ik het programma sluit blijft het process van dat programma op de achtergrond lopen, als ik het programma opnieuw start wil het geen internetverbinding maken totdat ik het oude process gekilled heb.
In debug mode met netjes overal door heen stappen lijkt alles goed te gaan, geen rare dingen totdat ik het programma probeer te sluiten, waar de code blijft staan op de laaste regel die toevallig uitgevoerd werd, deze nog uitvoert en dan niet het programma sluiten. (loopt wel netjes form_unload door)
Ik zit nu dus echt met een raadsel, voor de rest is er zover ik weet geen enkele manier om de Inet te laten stoppen. Ook google hielp me niet, ik vond 1 forum post uit 2003 met dezelfde symptonen icm een inet control, maar geen antwoorden, clue's of oplossingen/
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| Private Sub Command1_Click() Dim sSource As String Dim sDest As String Dim sExecute As String sSource = "test.vob" sDest = "C:\test.sds" sExecute = "Get " & Chr(34) & sSource & Chr(34) & " " & Chr(34) & sDest & Chr(34) With Inet .URL = "ftp://192.168.1.3" 'eigen pc, maar probleem gebeurt ook via een extern ftp .UserName = "aap" .Password = "noot" .Execute , sExecute End With End Sub Private Sub Timer1_Timer() '//timer wacht 150ms en zorgt dan voor de cancel, als ik dit eerder doe (direct in code) '//is de inet nog niet begonnen met ophalen van de bestanden en blijft het programma niet hangen '/.Cancel kan dus wel zonder problemen voor dat de daadwerkelijke file-transactie begonnen is Inet.Cancel End Sub |
Simpele code waar niks mis mee is zover ik zie...