Applikation tot nach einem Netzwerkunterbruch

16/03/2009 - 11:32 von Daniel Boss | Report spam
Guten Morgen zusammen

Zur Zeit bin ich an einem C#-Projekt. Um es zu Testen habe ich es einem
Mitarbeiter auf das Netzwerk kopiert. (\\Server\xy\abc.exe)

Seit ein paar Tagen hat er immer mal wieder beim Testen ein merkwürdiges
Verhalten meiner Applikation festgestellt.
Deshalb habe mich dann mal der Sache angenommen und im Fehlerlog(von uns)
folgendes entdeckt :
"External component has thrown an exception."

Da ich damit nichts anfangen kann/konnte fing ich an Tests zu machen um zu
sehen wann die Exception kommt.
Es stellte sich heraus dass die Exception dann auftritt wenn man einen
"Netzwerk-Disconnect" macht...danach wieder neu Connected und sobald dann
die Exe etwas "arbeiten" soll, kommt diese Exception.

Habe dann das Ganze bei mir auch geteset und kann es nachvollziehen, sprich
jedes mal wenn meine Exe-Datei auf dem Netzwerk gestartet wird, und es dann
einen Netzwerkunterbruch gibt, ist die Exe danach "futsch".
Mir ist es allerdings nicht ganz klar wieso, denn die Exe làdt sich ja lokal
runter und wird ja eigentlich auf meinem PC dann ausgeführt, oder nicht?

Was kann ich gegen diese Exception machen, bzw. Sie verhindern?
Heisst das dass man keine .Net Applikation auf dem Netzwerk laufen lassen
kann? Denn sobald ein Netzwerkunterbruch da wàre, wàre die Exe tot...

Wenn man die Exe lokal startet ("c:\irgendwo\abc.exe"), dann passiert diese
Exception nicht. Für mich sieht es so aus als ob er seine eigene Exe
verliert wenn Sie auf dem Netz gestartet wurde.

Kann man das irgendwie umgehen? Oder fehlt mir irgendwie eine
Kompilereinstellung?
Bin gerade etwas ratlos was ich dagegen machen kann. -.-

Meine einzige Variante ist im Moment dass ich das Programm intern
runterfahre und beende, und dann per Application.Restart() die Exe neu
starte...

Hoffe Ihr habt ne Idee, denn Google ist da relativ Sprachlos ;-)
(Und nein ich benutze keine Graphischen Elemente in der Exe)

Vielen Dank schonmal und Grüsse
Daniel
 

Lesen sie die antworten

#1 Volker Strähle
16/03/2009 - 13:04 | Warnen spam
Zu Deinem Problem hab ich leider keinen Lösungsvorschlag, aber warum will
man ein .NET-Exe übers Netz starten? Ich meine das Framework auf dem
ausführenden Rechner brauchst Du doch sowieso. Wenn es darum geht, dass Dein
Programm auf irgendwas auf dem Server zugreifen soll, dann könntest Du doch
mit Webservices oder Remoting arbeiten.

Volker


"Daniel Boss" schrieb im Newsbeitrag
news:
Guten Morgen zusammen

Zur Zeit bin ich an einem C#-Projekt. Um es zu Testen habe ich es einem
Mitarbeiter auf das Netzwerk kopiert. (\\Server\xy\abc.exe)

Seit ein paar Tagen hat er immer mal wieder beim Testen ein merkwürdiges
Verhalten meiner Applikation festgestellt.
Deshalb habe mich dann mal der Sache angenommen und im Fehlerlog(von uns)
folgendes entdeckt :
"External component has thrown an exception."

Da ich damit nichts anfangen kann/konnte fing ich an Tests zu machen um zu
sehen wann die Exception kommt.
Es stellte sich heraus dass die Exception dann auftritt wenn man einen
"Netzwerk-Disconnect" macht...danach wieder neu Connected und sobald dann
die Exe etwas "arbeiten" soll, kommt diese Exception.

Habe dann das Ganze bei mir auch geteset und kann es nachvollziehen,
sprich jedes mal wenn meine Exe-Datei auf dem Netzwerk gestartet wird, und
es dann einen Netzwerkunterbruch gibt, ist die Exe danach "futsch".
Mir ist es allerdings nicht ganz klar wieso, denn die Exe làdt sich ja
lokal runter und wird ja eigentlich auf meinem PC dann ausgeführt, oder
nicht?

Was kann ich gegen diese Exception machen, bzw. Sie verhindern?
Heisst das dass man keine .Net Applikation auf dem Netzwerk laufen lassen
kann? Denn sobald ein Netzwerkunterbruch da wàre, wàre die Exe tot...

Wenn man die Exe lokal startet ("c:\irgendwo\abc.exe"), dann passiert
diese Exception nicht. Für mich sieht es so aus als ob er seine eigene Exe
verliert wenn Sie auf dem Netz gestartet wurde.

Kann man das irgendwie umgehen? Oder fehlt mir irgendwie eine
Kompilereinstellung?
Bin gerade etwas ratlos was ich dagegen machen kann. -.-

Meine einzige Variante ist im Moment dass ich das Programm intern
runterfahre und beende, und dann per Application.Restart() die Exe neu
starte...

Hoffe Ihr habt ne Idee, denn Google ist da relativ Sprachlos ;-)
(Und nein ich benutze keine Graphischen Elemente in der Exe)

Vielen Dank schonmal und Grüsse
Daniel



Ähnliche fragen