.NET, Code, Tools, Web

SerializationException bei eigener Principal / Identity im HttpModule

9 June 2008 Keine Kommentare

Letztens habe ich ein eigenes HttpModule geschrieben, in dem ich spezielle (eigens geschriebenene) Principal- und Identity-Instanzen dem HttpContext zuweise. Ich habe mir nichts böses dabei gedacht, der Code war auch ziemlich einfach gehalten. Als ich das HttpModule mit der Webanwendung in Visual Studio gestartet habe, hat’s gescheppert:

SerializationException: Type is not resolved for member AuthTest.UserPrincipal

Komisch. Ich hatte alle Objekte [Serializable] markiert – dennoch die Exception. Als ich die Anwendung mit dem Modul auf dem IIS ausgeführt habe, ging alles einwandfrei. Schlußfolgerung: Der Visual Studio Development Server (Cassini) hat wohl Probleme, mit dem mit eigenen Objekten angerereicherten HttpContext umzugehen.

Ein Kumpel von mir ging dem Problem auf die Spur und entdeckte schließlich, das Cassini tatsächlich einen Bug hat (Cassini fährt u.U. mehrere AppDomains hoch).

Zum Glück gibt es eine Reihe von Workarounds zu diesem Problem, wovon wohl die einfachste das erben von MarshalByRefObject ist. So, jetzt funktioniert auch das HttpModule in Cassini wieder einwandfrei.

Ihre Meinung ist gefragt!

Sie können folgende Tags verwenden:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Dieser Blogs unterstützt Gravatare.
Falls Sie noch keines haben, können Sie Ihren persönlichen Avatar bei Gravatar erstellen.