[MW] Aufgabe 7, .NET Remoting

Exceptions werden nicht übertragen

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

[MW] Aufgabe 7, .NET Remoting
In dieser Aufgabe geht’s u.a. darum, Methodenaufrufe an einen Server zu senden und als Rückgabe Daten oder Exceptions zu bekommen. Lokal funktioniert das auch ganz gut, das LibraryFrontend fängt alle Exceptions der LibraryDB (bei lokaler Nutzung) korrekt auf. Sobald ich aber das .NET Remoting dazwischen setze, geht das nicht mehr. Methodenaufrufe, die keine Exceptions werfen, funktionieren und liefern korrekt ihre Daten zurück, aber soll auf dem Server eine Exception geworfen werden, beendet VS2005 das Programm an der Stelle und meint, dass diese Exception niemals aufgefangen wird. Traut der sich nur nicht, eine Exception durch den Tunnel zu werfen, oder fehlt da noch irgendwas, das auf den Übungsfolien nicht erwähnt wird?

Im CIP krieg ich das Programm mangels halbwegs aktueller Mono-Version leider gar nicht erst kompiliert, das liegt aber an fehlendem Generics-Support. Ob die Exceptions da gehen würden, weiß ich nicht. Ich werd’s nachher wohl mal mit ner aktuellen Mono-Version bei mir daheim probieren.

Update: Auch mono-1.1.13/OSX versteht diese Zeile nicht. Warten wir wohl besser noch ein Jahr, bis wir .NET jemand anderem als Microsoft zutrauen…


Hast du die Exceptions und die Klasse Item mit dem Attribut [Serializable] gekennzeichnet?


Ja, alle 5 Klassen.


Okay, hab mich da wohl etwas verlesen, wo auf der Mono-Seite steht, dass Generics schon lange unterstützt werden. Weder im FAQ noch in der devel-Mailing-Liste kommt irgendwo das Wort “Generics” vor (bis auf einmal, wo einer schauen will, ob sein Code geht). Haben die wohl doch noch nicht mitbekommen, dass es sowas gibt.

Wegen dem Exceptions-Problem hab ich jetzt mal im MSDN-Forum nachgefragt, mal schauen, ob da jemand antwortet.

Ich mach derweil mal ne Kopie des Quelltextes und verzichte dabei auf Generics sowie custom exceptions. Das ist zwar nicht schön, aber funktioniert dafür vielleicht.


die generics funktionieren mit mono schon, aber du darfst nicht den normalen mcs genutzen, sondern gmcs.


Aha, das hab ich z.B. noch nirgends gehört. Aber egal, das Ding funktioniert ja auch gar nicht:

Naja, das Ganze hat jetzt sowieso nur noch die Priorität eines Freizeitprojekts. Nachdem ich erstmal die ganze schöne Verzeichnisstruktur von VS2005 mitsamt aller Projekte, assemblyinfos (wer braucht schon Assemblies…) weggeworfen und die ursprünglichen Exceptions wieder eingebaut hab, ging’s dann auch im CIP. Nur Generics darf man halt nicht verwenden, da dreht der Affe durch. Aber auf die theoretisch notwendige Fehlerbehandlung hab ich wirklich keine Lust. Sollten in dem Array wirklich falsche Typen stehen, kann ich’s auch net ändern.

Ich find’s toll, wie wir in MW kontinuierlich an die Grenzen der aktuellen technischen Machbarkeit geführt werden… Ist das ein verdeckter Hinweis darauf, endlich selbst mitzuhelfen? :wink: