none
Begin_Request wird ignoriert und Variablen weg... RRS feed

  • Frage

  • Hallöchen,

    ich habe eine Webanwendung die mir gerade Probleme bereitet. Wenn eine Application gestartet wird, werden in der global.asax Konfigurationenobjekte im Objekt Application abgelegt und es werden Routen festgelegt.

    Alles funktionierte einwandfrei. Jetzt, auf dem Webserver, ist ein Problem aufgetreten. Zwar sind die Konfigurationen im Application-Objekt weiterhin vorhanden wenn ich mich durch die Anwendung klicke, auch die Routen, aber sobald ich auf einen Link klicke der mit Hilfe des Routings erstellt wurde, ist alles weg. Außerdem wird das Event Begin_Request in der global.asax nicht mehr gefeuert. Die Seite kommt zwar aber ohne Begin_Request auszuführen und ohne die im Arbeitsspeicher gehaltenen globalen Konfigurationen.

    Das Routing sieht in etwa so aus: www.domain.de/Thema/Person/ und ruft innerhalb der Application die Webform ~/Controls/ControlAbc/Default.aspx auf (nicht durch das Wort Controls verwirren lassen, es ist eine .aspx-Form).

    Aber in der .aspx-Form ist das Application-Objekt leer und Begin_Request wird auch nicht mehr ausgeführt.

    Hat da jemand eine Idee was ich falsch gemacht haben könnte? Auf dem WebDev-Server an meinem Arbeitsplatz (Windows7 / Studio 2010) funktioniert es einwandfrei. Auf dem Windows Server 2008 R2 mit IIS7.5 nicht mehr.

    Gruß
    Andy

    Dienstag, 14. Juni 2011 11:08

Antworten

  • Hi,

    vorab: Du solltest nicht mit dem WebDev Server entwickeln, sondern mit dem IIS. Der lässt sich unter Windows 7 problemlos installieren und ist mit wenigen Ausnahmen zum "richtigen" IIS auf Windows 2008 (R2) identisch. Das Verhalten des WebDev Server im Vergleich zu IIS ist komplett anders und Du wirst zwangsläufig noch auf andere Probleme stoßen.

    In deinem Fall sieht es für mich so aus als ob der Request gar nicht durch ASP.NET verarbeitet wird. Warum Du jetzt aus einem MVC(?) Request heraus per Code(?) eine Webform(???) aufrufst, erschließt sich mir nicht wirklich.

    Lies dich mal in Routing ein, ggfs. findest Du da schon den Hinweis, was Du unter IIS 7 ggfs. noch einrichten musst.

      http://msdn.microsoft.com/de-de/library/cc668201.aspx

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Dienstag, 14. Juni 2011 11:23
    Moderator
  • Guten Morgen,

    sorry das ich mich gestern nicht mehr gemeldet hatte, musste unerwartet nochmal raus.

    Also, der Wechsel vom WebDev-Server zum IIS Express ist ein Kinderspiel. Einfach nur rechte Maustaste auf das Projekt und da steht auch "IIS Express verwenden..." und das war es dann auch. Wer das nicht mehr will kann genauso bequem wieder zürckwechseln, wieder rechte Maustaste und dann steht da statt IIS "WebDev-Server verwenden...".

    Das Objekt das ich zuvor in der Global.asax in die Application-Variable war doch nicht "verschwunden". Allerdings musste ich mir etwas einfallen lassen um den Begin_Request (der ja ignoriert wird) nochmal auszulösen. Das läßt sich wohl leider nicht vermeiden.

    Kann euch nur empfehlen um den WebDev-Server einen großen Bogen zu machen.

    Ich hab jetzt nur ein Problem: Wo ist das Web? Unter Systemsteuerung/Verwaltung/IIS ist es nicht.

    Gruß
    Andy

    Mittwoch, 15. Juni 2011 04:08

Alle Antworten

  • Hi,

    vorab: Du solltest nicht mit dem WebDev Server entwickeln, sondern mit dem IIS. Der lässt sich unter Windows 7 problemlos installieren und ist mit wenigen Ausnahmen zum "richtigen" IIS auf Windows 2008 (R2) identisch. Das Verhalten des WebDev Server im Vergleich zu IIS ist komplett anders und Du wirst zwangsläufig noch auf andere Probleme stoßen.

    In deinem Fall sieht es für mich so aus als ob der Request gar nicht durch ASP.NET verarbeitet wird. Warum Du jetzt aus einem MVC(?) Request heraus per Code(?) eine Webform(???) aufrufst, erschließt sich mir nicht wirklich.

    Lies dich mal in Routing ein, ggfs. findest Du da schon den Hinweis, was Du unter IIS 7 ggfs. noch einrichten musst.

      http://msdn.microsoft.com/de-de/library/cc668201.aspx

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Dienstag, 14. Juni 2011 11:23
    Moderator
  • Hi Stefan,

    hmmm, dann werde ich mir das wirklich mal ansehen und vom WebDev mal langsam aber sicher weggehen.

    Ich habe keine MVC-Anwendung, sondern eine reine leere ASP.NET-Anwendung. Ich rufe auch nicht per Code die Webform auf, sondern es wurde eine Route (in Application_Start) darauf gesetzt. Und sobald ich auf einen Link klicke der über diesen Routeneintrag geht, ist feierabend. Die korrekte Seite kommt zwar, aber es wird vorher in der Global.asax kein Begin_Request ausgeführt und das Objekt Application ist jungfräulich leer. In WebDev-Server einwandfrei, auf dem realen IIS nicht mehr.

    Dabei verwende ich auch kein RoutingModul von einem Drittanbieter sondern das System.Web.Routing.

    Und jetzt hab ich mich auch noch auf das Ergebnis vom WebDev-Server verlassen. Alles für die Katz :-(

    Gruß
    Andy 

    Dienstag, 14. Juni 2011 11:38
  • Guten Morgen,

    sorry das ich mich gestern nicht mehr gemeldet hatte, musste unerwartet nochmal raus.

    Also, der Wechsel vom WebDev-Server zum IIS Express ist ein Kinderspiel. Einfach nur rechte Maustaste auf das Projekt und da steht auch "IIS Express verwenden..." und das war es dann auch. Wer das nicht mehr will kann genauso bequem wieder zürckwechseln, wieder rechte Maustaste und dann steht da statt IIS "WebDev-Server verwenden...".

    Das Objekt das ich zuvor in der Global.asax in die Application-Variable war doch nicht "verschwunden". Allerdings musste ich mir etwas einfallen lassen um den Begin_Request (der ja ignoriert wird) nochmal auszulösen. Das läßt sich wohl leider nicht vermeiden.

    Kann euch nur empfehlen um den WebDev-Server einen großen Bogen zu machen.

    Ich hab jetzt nur ein Problem: Wo ist das Web? Unter Systemsteuerung/Verwaltung/IIS ist es nicht.

    Gruß
    Andy

    Mittwoch, 15. Juni 2011 04:08