none
Server.Transfer und der Kontext der Anforderung RRS feed

  • Frage

  • Hallo NG!

    Nach einem Server.Transfer habe ich das Problem, dass die Page, zu der transferiert wird, im Kontext der Page ausgeführt wird, die den Transfer ausgelöst und nicht in ihrem eigenen Kontext. Ich habe folgende Dateistruktur:

    Index.aspx

    Web.config

    Directory1

    -          SubIndex.aspx

    -          Web.config

    Directory2

    - ...

    Die Index.aspx im Wurzelverzeichnis führt einen Server.Transfer("Directory1/SubIndex.aspx") aus. Das klappt zwar, doch für diesen Seitenaufruf bleibt der Ausführungskontext in der Ebene der Datei Index.aspx, es wird die Web.config im Wurzelverzeichnis eingelesen. Erst nach einem Postback der SubIndex.aspx wechselt offenbar der Ausführungskontext zu Directory1/ und es gelten die Konfigurationen der Directory1/Web.config.

    Ist es möglich, diesen Ausführungskontext zu beeinflussen, so dass die Seite SubIndex.aspx gleich nach dem Transfer im Kontext des Verzeichnisses Directory1 ausgeführt wird?

    Viele Grüße

    Jan

    Donnerstag, 4. Oktober 2012 13:30

Antworten

  • Hi,

    zum einen erscheint es mir recht sinnlos, das überhaupt so zu machen. Was willst Du mit dem Konstrukt des Transfers erreichen?

    Damit deine Einstellungen der Unterordner greifen, muss die Anforderung auf den Unterordner gehen. Verwende also Response.Redirect anstelle von Server.Transfer, siehe dazu auch:

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

    Alternativ könnte man es auch mit UrlRewriting versuchen, falls Du nur die untergeordneten Seiten "verstecken" willst.


    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

    Donnerstag, 4. Oktober 2012 14:37
    Moderator

Alle Antworten

  • Hi,

    zum einen erscheint es mir recht sinnlos, das überhaupt so zu machen. Was willst Du mit dem Konstrukt des Transfers erreichen?

    Damit deine Einstellungen der Unterordner greifen, muss die Anforderung auf den Unterordner gehen. Verwende also Response.Redirect anstelle von Server.Transfer, siehe dazu auch:

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

    Alternativ könnte man es auch mit UrlRewriting versuchen, falls Du nur die untergeordneten Seiten "verstecken" willst.


    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

    Donnerstag, 4. Oktober 2012 14:37
    Moderator
  • Hi,

    mit Response.Redirect gehen QueryString und Form-Auflistungen verloren. Die untergeordneten Seiten sollen auch nicht versteckt werden. Ich nehme an, Du willst sagen, dass so ein Kontextwechsel nicht möglich ist, oder?

    Viele Grüße

    Jan

    Donnerstag, 4. Oktober 2012 16:56