2009-03-31 13 views
1

Welche Best Practices zum Aktualisieren einer Webanwendung in IIS gibt es?Aktualisieren einer Webanwendung in IIS - bewährte Methoden

Die erste Seite, die Sie beim Besuch unserer Anwendung sehen, ist eine Anmeldeseite.

Ich möchte erreichen, dass Besucher auf eine Seite weitergeleitet werden, die besagt, dass die Anwendung aktualisiert wird. Und für Benutzer mit einer Administratorrolle, die sich erfolgreich anmelden können (um zu überprüfen, ob alles ordnungsgemäß funktioniert)

In web.config verfolgen wir, ob die Anwendung aktualisiert wird (update = [true | false] und dann weiter) die authentication_event:

if (updating) 
{ 

    if (User.IsInRole("admin")) 

    { 

     redirect to main web app... 

    } 
    else 
    {  

    redirect to web being updated page.... 

    } 

} 
else 
{ 

    redirect to main web app.. 

} 

Jede beraten wird enorm geschätzt werden ..

Antwort

1

Sieht aus wie Sie ziemlich viel es herausgefunden haben

if (WebConfigurationManager.AppSettings["updating"]=="true") 
    if (User.IsInRole("admin")) 
     Response.Redirect("~/Main.aspx"); 
    else 
     Response.Redirect("~/Updating.aspx"); 
else 
    Response.Redirect("~/Main.aspx"); 
1

. Anstatt dies über web.config zu tun, sollten Sie das Update-Flag in einer anderen XML-Datei oder -Datenbank speichern. Bei jedem Update der Datei web.config wird die Anwendung neu gestartet, wodurch aktuelle Anwendungsvariablen, Caches usw. ungültig werden.

Abgesehen davon, haben Sie die andere Logik richtig. aber vermeiden Sie die web.config so weit wie möglich zu berühren - ich persönlich nur speichern die Verbindungszeichenfolge in der web.config als kaum ändert

aber rest der Schlüsselwert-Paare, die oft ändern, habe ich sie in SQL-Datenbank gespeichert Tabelle. so dass ich niemals einen Anwendungsneustart machen muss, wenn sich meine Verbindungszeichenfolge nicht ändert :-)

+0

Anwendungseinstellungen sind für genau diese Art von Sache gemacht. – JoshJordan

+0

hängt davon ab. Ich mache viele beschäftigte E-Commerce-Sites, wo zu jedem Zeitpunkt 100 von Benutzern beschäftigt einkaufen sind. Ich kann meine gesamte App nicht zurücksetzen und verliere sie nur, um den Wert von 1 App-Einstellung zu ändern :-) – Raj

+0

stattdessen, was ich tue, ist im Admin-Bereich ein Formular an Site-Admin zu aktualisieren appSettings - und dann nur meine Klasse neu zu aktualisieren welche diese Werte enthält - gespeichert in der Anwendungsvariablen – Raj

9

Ich teste alles lokal, dann benutze ich die eingebaute app_offline.html Datei auf dem Produktionsserver. Wenn diese Datei vorhanden ist, wird sie an Clients geliefert. In der Zwischenzeit lade ich neue Inhalte hoch. Wenn Sie fertig sind, benennen Sie app_offline.html in etwas anderes um und die neue App startet.

+0

+10 Ich wünschte, ich könnte dies noch verbessern. App_Offline ist SCHNELL und EINFACH und ich LIEBE ES !!!! Sie können sogar die Datei auf dem Webserver als app_offline_disabled.html belassen, wenn sie nicht verwendet wird. Es hat mir so viele Probleme erspart, die ich vorher ausprobieren musste. Befolgen Sie einfach diese Richtlinien und Sie werden eingestellt. http://weblogs.asp.net/scottgu/archive/2006/04/09/442332.aspx –

+0

Kurzer Hinweis, es ist app_offline.htm .... nicht .html –

Verwandte Themen