Guten Morgen liebe Community!
Ich sitze hier jetzt schon eine ganze Weile vor einem Problem, was sich mir nicht richtig erschließen will.
Zum Stand der Dinge:
Ich habe eine 'Status' Variable (Integer), eine Form, die über eine Prozedur eine Verbindung via FTP zu einem Server herstellt und dort eine XML Datei ergänzt. Das ganze läuft über einen Backgroundworker. Soweit so gut.
Um es Anschaulicher zu gestalten:
Es folgt die Methode, die ab und an neue Werte zu 'Status' zuweist, je nachdem wie "weit" die Prozedur nun schon ist.
(0 - Startwert, 1 - Verbindung hergestellt, 2 - Datei manipuliert)
Da das ganze auch Fehler werfen kann, wird ist sie innerhalb eines Try-Catch Blockes und wenn nun ein Fehler kommt (Keine Schreibrechte, Server offline), dann wird erst, je nachdem wo die Prozedur schon war, eine MsgBox angezeigt und dann Status = 99 zugewiesen. Bei keine Fehler wird 100 zugewiesen.
Und jetzt das Problem:
Wenn 'Status' = 99 ist und ich die neue Form haben möchte, dann kommt eine TargetInvocationException, die mir nicht allzu viel sagt. Bei 'Status' = 100 funktioniert es wie gewollt.
Und jetzt noch einer drauf: Wenn ich den Server abschalte (Status = 99 dann) kommt der Fehler. Wenn ich nur die Schreibrechte entferne (Status ebenfalls = 99) dann funktioniert alles.
Ich hoffe ihr konntet mein Problem nachvollziehen und habt einen Ratschlag für mich. Bis dahin wünsche ich noch eine angenehme Nacht bzw. guten Morgen.
MfG Myst
PS: Es sind natürlich nur Teile des Codes abgebildet, da es sonst zu viel wäre, denke ich. Ich hoffe ich habe alles relevante gepostet.
Ich sitze hier jetzt schon eine ganze Weile vor einem Problem, was sich mir nicht richtig erschließen will.
Zum Stand der Dinge:
Ich habe eine 'Status' Variable (Integer), eine Form, die über eine Prozedur eine Verbindung via FTP zu einem Server herstellt und dort eine XML Datei ergänzt. Das ganze läuft über einen Backgroundworker. Soweit so gut.
Um es Anschaulicher zu gestalten:
Code:
Public Class frmConnect Dim Status As Integer = 0 'Statuswerte
Code:
Private Sub frmConnect_Load(...) Handles MyBase.Load BackgroundWorker1.WorkerReportsProgress = True BackgroundWorker1.RunWorkerAsync() End Sub
(0 - Startwert, 1 - Verbindung hergestellt, 2 - Datei manipuliert)
Code:
Stream = Client.OpenRead(URL + Pfad) 'Status 1 = Verbindung hergestellt Status = 1 BackgroundWorker1.ReportProgress(1, Status) 'Status übermitteln
Und jetzt das Problem:
Code:
Private Sub BackgroundWorker1_RunWorkerCompleted(...) Handles BackgroundWorker1.RunWorkerCompleted If Status = 99 Then 'Funktioniert nicht Dim Form As New frmÜberprüfen Form.Show() ElseIf Status = 100 Then 'Funktioniert Dim Login As New frmLogin Login.Show() End If End Sub
Und jetzt noch einer drauf: Wenn ich den Server abschalte (Status = 99 dann) kommt der Fehler. Wenn ich nur die Schreibrechte entferne (Status ebenfalls = 99) dann funktioniert alles.
Ich hoffe ihr konntet mein Problem nachvollziehen und habt einen Ratschlag für mich. Bis dahin wünsche ich noch eine angenehme Nacht bzw. guten Morgen.
MfG Myst
PS: Es sind natürlich nur Teile des Codes abgebildet, da es sonst zu viel wäre, denke ich. Ich hoffe ich habe alles relevante gepostet.
Comment