2009-08-04 3 views
1

Nach einer ASP.Net-Anwendung auf einen neuen Server bereitstellen, wird der erste Benutzer die App treffen eine lange Pause, vermutlich weil die App seine ursprüngliche Zusammenstellung ausführt. Diese Pause scheint jedoch auch nach dem Timeout der Anwendung und dem Entladen aus dem Speicher zu erfolgen.Überwindung der Kompilierung (?) Pause beim * sekundären * ersten Start der ASP.Net-Anwendung?

Die erste Kompilation wäre erträglich, da sie nur einmal funktioniert, aber die zweite scheint mir, als ob sie unnötig sein sollte .... gibt es einen Workaround, um dieses Problem anzugehen? Es wäre schön, in der Lage zu sein, das Anwendungstimeout zu verlängern, aber ich sehe nur eine Möglichkeit, das Sitzungstimeout zu verlängern, was ich lieber nicht tun würde, da dies alle Benutzersitzungen für einen langen Zeitraum im Speicher behalten würde.

+1

Ich bin nicht positiv, aber es kann einige Tuning tun, die Sie für die Anwendungspools in IIS 6 & IIS 7 tun können, die helfen würden. –

Antwort

1

Ein gemeinsamer Weg (obwohl Blicke mir hackish) den Arbeitsprozess am Leben zu erhalten ist, einige Programm Ausgabe Web-Anfragen zu einem gewissen URL in der Anwendung auf einer regelmäßigen Basis zu haben.

Sie können Vorkompilieren die ASP.NET-Anwendung mit aspnet_compiler.exe die anfängliche Startzeit reduzieren. Dadurch wird die anfängliche Anforderungszeit nicht auf Null reduziert (es muss immer noch den Arbeitsprozess erstellt und andere Vorgänge ausgeführt werden.), Aber es wird sich merklich verringern.

1

Ich habe einige empfohlene Einstellungen für die App-Pools in IIS finden. Das beabsichtigte Ergebnis dieser Einstellungen besteht darin, die Häufigkeit zu reduzieren, mit der Ihre Anwendung den Startzyklus durchlaufen muss.

  • Recycle-Arbeitsprozess: Diese Einstellungen sollten an IIS 6 sowie IIS 7 gelten deaktivieren. Verwenden Sie dies nur, wenn Sie mehrere Websites haben und versuchen, Prozesse zu isolieren.
  • Shutdown Worker-Prozesse nach dem Leerlauf (in Minuten Zeit) zu sein: deaktivieren, wenn Sie Ressourcen auf dem Server gemeinsam nutzen. Wenn diese Einstellung deaktiviert ist, sollte Ihre Website nicht entladen werden, um sicherzustellen, dass die Startzeit für Ihre Website so gering wie möglich ist.
+0

Ich würde mich mit der Empfehlung, Worker Process Recycling zu deaktivieren, streiten. Eine gesunde App sollte den Unterschied aufgrund des überlappenden Recyclings nicht bemerken, und eine misshandelte App wird sehr davon profitieren. Ich sehe wirklich sehr wenig Nachteil darin, es zu ermöglichen. –