Zum Standarddokument von webapp umleiten, wenn eine andere Seite angegeben wird?

IIS6, ASP.NET 2.0, keine Formularauthentifizierung

Ich rufe Response.Redirect ("~ / foo.aspx") auf, aber das Standarddokument ("Default.aspx") für meine Site wird angezeigt. Erschwerend kommt hinzu, dass es nur sporadisch passiert. Manchmal zeigt die Umleitung die richtige Seite an.

Ich habe den Sitzungsstatus überprüft und sehe keine Werte in der web.config (das heißt, ich gehe davon aus, dass ich die 20-Minuten-Standardeinstellungen verwende).

Ich wünschte, ich hätte relevantere Informationen zu teilen (ich werde mein Bestes tun, um alle Fragen zu beantworten).

Irgendwelche Ideen? Warum wird nicht auf die angegebene Seite umgeleitet?

BEARBEITEN: Ich habe genauer in den Code geschaut und mehr Details erfahren.

Okay. Es gibt foo.aspx und foo2.aspx (und das Standarddokument Default.aspx). Alle Seiten erstrecken sich von BasePage, das Page erweitert.

BasePage hat eine Eigenschaft namens ReturnPage:

protected string ReturnPage {
    get {
        if (Session["ReturnPage"] == null) {
            Session["ReturnPage"] = "";
        }
        return Session["ReturnPage"].ToString();
    }
    set { Session["ReturnPage"] = value; }
}

Benutzer klicken auf einen LinkButton in foo.aspx und der click-Ereignishandler endet mit zwei Codezeilen:

ReturnPage = ResolveUrl("~/foo.aspx");
Response.Redirect(ResolveUrl("~/foo2.aspx"));

Das PageLoad von foo2.aspx hat Probleme und die Fehlerbehandlung ruft Response.Redirect (ReturnPage) auf.

Wenn ich die Antwortheader von foo2.aspx ansehe, ist der Speicherort 302 string.Empty (das heißt, es gibt keinen). Derselbe Antwortheader hat dieselbe ASP.NET-Sitzungs-ID wie die Antwort von foo.aspx.

Und denken Sie daran - das ist zeitweise. Manchmal können Sie auf diesen LinkButton klicken und mühelos zu foo2.aspx wechseln, kein Problem. Sie können den Klick mit genau denselben Daten einmal verarbeiten, und er schlägt fehl. Sie navigieren vom Standarddokument (Default.aspx, an das Sie vom "Bug" gesendet wurden) zurück zu foo.aspx. Klicken Sie erneut mit denselben Daten (dieselbe Zeile in der Tabelle / Tabelle - derselbe LinkButton). im Wesentlichen), und Sie werden ohne Probleme zu foo2.aspx weitergeleitet.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage