Laden...

HttpModule wird bei aufruf einer nicht vorhandenen .aspx nicht aufgerufen

Erstellt von serial vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.114 Views
S
serial Themenstarter:in
902 Beiträge seit 2007
vor 13 Jahren
HttpModule wird bei aufruf einer nicht vorhandenen .aspx nicht aufgerufen

Hallo liebe Gemeinde,

ich habe folgendes Problem:

Ich habe in meiner Anwendung ein HttpModule, um einen eigenen Context für Services zu initialisisren.

In diesem habe ich das PreRequestHandlerExecute aboniert:





 public class AppContextModule : IHttpModule
    {
        IAppContextAdmin appContext, appContextUser;
        
        #region IHttpModule Member

        public void Dispose()
        {
        }

        public void Init(HttpApplication context)
        {
            appContext = AppContext.InitializeContext();
            context.PreRequestHandlerExecute += new EventHandler(context_PreRequestHandlerExecute);
        }


        void context_PreRequestHandlerExecute(object sender, EventArgs e)
        {
         //hier werden einige initialisierungen durchgeführt
          }
}

nun mein problem, wenn ich eine ressource anfordere, die nicht vorhanden ist, wird er nicht durchlaufen (weder IIS6 noch IIS7 im integrated mode)

Komisch ist allerdings folgendes:

wenn ich die url aufrufe (http://www.meinedomain/nichtvorhandeneRessource
wird das Module aufgerufen, aber bei
http://www.meinedomain.de/nichtvorhandeneRessource.aspx wird er nicht aufgerufen, aber es fliegt vorher ein 404-Fehler.

Habe ich nur ein fehler im denken, oder müsste das module nicht in allen fällen aufgerufen werden?

mfg
serial

3.170 Beiträge seit 2006
vor 13 Jahren

Hallo,

schau doch mal ob Du diese Ereignisse bekommst:
HttpApplication.BeginRequest-Ereignis
HttpApplication.Error-Ereignis

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

5.941 Beiträge seit 2005
vor 13 Jahren

Hoi serial

Komisch ist allerdings folgendes:

wenn ich die url aufrufe (
>

wird das Module aufgerufen, aber bei

>
wird er nicht aufgerufen, aber es fliegt vorher ein 404-Fehler.

Habe ich nur ein fehler im denken, oder müsste das module nicht in allen fällen aufgerufen werden?

Und in welcher Konfiguration passiert das so?

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

T
307 Beiträge seit 2008
vor 13 Jahren

Schreibe den Aufruf Ddeiner Module in die Web.config

S
serial Themenstarter:in
902 Beiträge seit 2007
vor 13 Jahren

Hallo,

@MarsStein: ja die beiden Events werden ausgeführt, bei beiden Aufrufen.
Nur das PreRequestHandlerExecute nicht, welches ich aber zwingend brauche =(

@Peter Bucher: welche Konfiguration genau meinst du?
Das Module wurde in der web.config eingetragen und ausführung ist auf iis7 im integrated oder normal mode, sowie auf dem iis6 identisch. (sofern ich das beurteilen kann)

@Taucher:
Ich hab mein Modul schon registriert. Spielt die Reihenfolge wie diese Eingetragen sind eine Rolle?
mfg
serial

3.170 Beiträge seit 2006
vor 13 Jahren

Hallo,

warum brauchst Du zwingend das PreRequestHandlerExecute für Dateien/Handler die nicht existieren?
Kannst Du mal Dein Szenario etwas genauer schildern?

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

S
serial Themenstarter:in
902 Beiträge seit 2007
vor 13 Jahren

Hallo,

in diesem Ereigniss erstelle ich einen eigenen AppContext, welcher wichtige Informationen zur Seite enthält (uA acuh eine Id, welche die Seite identifiziert)....diese ID ist für die ErrorPage auch relevant, weil über diese Id eine MasterPage geladen wird, welche auch im Fehlerfall geladen werden sollte, damit die ErrorPage für jeden Kunde (jeder Kunde hat eine Id) im Kundenspezifischen Style darstellt.

Da der AppContext in der Session gehalten werden muss, brauche ich dieses Ereignis, da ich vorher keinen Sessionstate zur Verfügung habe (soweit ich das noch in erinnerung habe)

mfg
serial