2010-12-21 4 views
5

Ein Problem mit ASP.NET-Anwendungen besteht darin, dass sie sich regelmäßig neu laden, was zu einer langen Verzögerung und möglicherweise zu einer Zeitüberschreitung für Benutzer führt, die während dieser Zeit auf die Website zugreifen.Wie beseitigt man ASP.NET Application Reload Delay mit Load Balancer?

Dies ist möglicherweise kein Problem für kleine Websites, aber es kann eine erhebliche Ausfallzeit für Websites mit hohem Datenaufkommen darstellen, wenn Benutzer in der Webfarm, die neu gestartet wird, an einen Knoten weitergeleitet werden.

Pre-Compling kann helfen, aber für Websites mit vielen Seiten gibt es immer noch eine unvermeidliche Verzögerung.

Können Load Balancer irgendwie "wissen", wenn eine ASP.NET-Anwendungsdomäne auf einem bestimmten Server neu gestartet wird? Anschließend können sie Verkehr um diesen Server weiterleiten, bis die Anwendung den Neustart abgeschlossen hat.

Zur Zeit habe ich meine Load Balancer Ping eine einfache ASPX-Seite auf der Website. Wenn eine Verzögerung auftritt oder die Seite nicht geladen werden kann, wird der Host nicht mehr rotiert. Ist es möglich, einen gezielteren Integritätstest durchzuführen, möglicherweise auf der Ebene von IIS statt auf der Ebene von ASP.NET?

Antwort

0

Sowohl IIS6 als auch IIS7 unterstützen die Planung des Neustarts von App-Pools zu festgelegten Zeiten/Intervallen. Wenn Ihr Load Balancer Knoten nach einem Zeitplan absetzen kann, können Sie die beiden Zeitpläne synchronisieren.

Sie könnten auch einen Recyclingvorgang vom Load Balancer programmatisch erzwingen, werfen Sie einen Blick auf http://blog.developers.ie/cgreen/archive/2006/10/20/2341.aspx für 2 Optionen.

Natürlich werden diese Fälle nicht behandelt, wenn der App-Pool aus anderen Gründen neu gestartet wird.