2009-03-03 12 views
3

Ich habe eine asp.net-Website, die eine Webanwendung verwendet und sie sind beide im selben Anwendungspool (mit 1 Worker-Prozess). Die Webseite hat ein httpmodul in der Datei web.config geladen und interessanterweise werden sowohl die Hauptwebseite als auch die Anwendung von verschiedenen Instanzen des httpmodul bedient. Warum ist das? Da sie sich in demselben Prozess befinden, scheint es, als ob sie eine Instanz verwenden sollten.mehrere httpmodule Instanzen

Auch wenn ich versuche, statische Variablen in der Anwendung zu verwenden, zeigen sie auf andere Objekte als in der asp.net-Website. Die gleiche Frage wie zuvor, da sie sich im selben Prozess befinden, sollten sie nicht das gleiche Objekt sein oder verhindert .net eine Art von Grenze innerhalb des Prozesses?

Antwort

3

IIS erstellt für jede Anwendung eine separate AppDomain. Diese Anwendungsdomänen befinden sich innerhalb desselben Betriebssystemprozesses, können jedoch aus Sicht Ihres verwalteten Codes wie separate Prozesse behandelt werden. I.e. sie teilen nicht geladen Baugruppen, Speicher usw.

http://www.odetocode.com/articles/305.aspx http://weblogs.asp.net/owscott/archive/2007/09/02/application-vs-appdomain.aspx http://msdn.microsoft.com/en-us/library/system.appdomain(VS.85).aspx