2017-12-27 1 views
0

ich zu einem Pflegebild umleiten möchten, wenn wir innerhalb des definierten Wartungsfenster (zwischen Start und End Datetime Datetime) sindKann Redirect nicht von Anwendungsbeginrequest auf den ersten Antrag mit RewritePath

in meinem Global.asax.cs Datei:

protected void Application_BeginRequest(object sender, EventArgs e) 
{ 
    var maintStart = Convert.ToDateTime(CommonUtilities.GetAppConfigCredential("MaintenanceStartDateTime")); 
    var maintEnd = Convert.ToDateTime(CommonUtilities.GetAppConfigCredential("MaintenanceEndDateTime")); 
    DateTime nw = DateTime.Now; 

    if (maintStart < nw && nw < maintEnd) 
    { 
     HttpContext.Current.RewritePath("MaintenancePage"); 
    } 
} 

Wenn ich meine Anwendung außerhalb des Wartungsfensters starten, dann warten Sie, bis das Fenster Datetime starten (oder einfach die Config ändern), I weitergeleitet in die Pflege auf die nächste Anforderung. Allerdings, wenn ich versuche, meine Anwendung während des Wartungsfensters zu starten, bekomme ich folgende Fehlermeldung:

Server Error in '/' Application. 
Runtime Error 
Description: An exception occurred while processing your request. Additionally, another exception occurred while executing the custom error page for the first exception. The request has been terminated. 

nicht sicher, wie dies zu debuggen, oder das, was mein nächster Schritt sein soll.

EDIT:

Wenn ich meine Anwendung innerhalb des Wartungsfensters starten, ich brauche:

HttpContext.Current.RewritePath("Home/MaintenancePage"); 

, damit es richtig funktioniert.

Wenn ich meine Anwendung außerhalb des Wartungsfensters starten, dann bis zur Startzeit Wartungsfenster warten, ich brauche:

HttpContext.Current.RewritePath("MaintenancePage"); 

, damit es richtig funktioniert.

EDIT2:

vergessen zu erwähnen, ich habe dies:

public ActionResult MaintenancePage() 
{ 
    return View(); 
} 

in meinem Homecontroller.

Und ich habe vergessen zu erwähnen, dass die Wartungsseite im Ordner Ansichten/Home war.

+0

99% Sie Wartung Seite sich auf unbestimmte Zeit umleiten. Schwer zu sagen, ohne zu wissen, wohin Sie tatsächlich umleiten. –

+0

@Alexi - nein, mit Rewritepath funktioniert das nicht. – Joe

+0

@Alexi - 'RewritePath' leitet nicht um. Daher generiert es keine zusätzlichen "BeginRequest" -Ereignisse. – Joe

Antwort

0

In meiner Global.asax.cs Datei, in Application_BeginRequest, ist dies die richtige Aussage, mit dem richtigen Pfad:

HttpContext.Current.RewritePath("/Home/MaintenancePage"); 
Verwandte Themen