2011-01-10 6 views
5

Ich habe eine ASP.net MVC 2-Anwendung, die lokal gut ausgeführt wird. Wenn ich jedoch die Dateien auf meinen Produktionsserver verschiebe, bekomme ich eine erste Verzögerung von etwa 30 Sekunden, ich nehme an, dies ist eine erste Kompilierung. Danach funktioniert die Anwendung gut. Nach etwa 20 bis 30 Minuten Nichtbenutzung dauert das Laden der Anwendungen weitere 30 Sekunden.Wie kann ich die erste Ladezeit in ASP.net MVC 2 verringern?

habe ich versuchen, den Code vorkompilieren, aber es gibt immer noch eine Verzögerung während der ersten Last.

Gibt es einen Trick, damit die Anwendung beim ersten Laden schneller arbeitet?

ich verwende ASP.net 3.5, IIS 6, Visual Studio 2010, MVC 2.

Dank

Antwort

2

Ich entschied mich, eine Windows-Dienstanwendung zu schreiben, um meine Seiten alle 10 Minuten aufzurufen, bis jetzt funktioniert es gut.

+0

Es gibt einige kommerzielle Dienste, die dies für Sie tun werden (einige kostenlos, glaube ich). Es ist ein zweischneidiges Schwert - und beide Seiten schneiden. Wenn Sie genug Verkehr haben, werden Sie es nie sehen. Wenn Sie sehr wenig Verkehr haben, wird jeder Besucher es sehen. – Robaticus

6

Scott Gu hat eine gute Blog-Post here

EDIT:

Es ist eine ähnliche post here auf Serverfault, die nützlich sein könnte.

+1

Das ist gut für ASP.NET 4 und IIS 7.5, aber ich bin mit ASP.NET 3.5 und IIS 6- – Bill

+0

@ Bill: siehe meine bearbeiten. – VoodooChild

0

Im Wesentlichen ist der Anwendungspool inaktiv und wird den Arbeitsprozess automatisch beendet. Wenn Sie dann versuchen, auf die Seite zuzugreifen, muss der Worker-Prozess gestartet und alles vorbereitet werden.

Wenn Sie unter Server 2003 ausgeführt werden, können Sie den Worker-Prozess nicht beenden. Benson Yu hat eine gute Antwort hier:

http://forums.asp.net/p/1307768/2666610.aspx

Wesentlichen auf IIS-Manager gehen, Ihre asp.net 3.5-Anwendungspool, die Ihre Anwendung ausgeführt wird, und ändern Sie seine Leistung Eigenschaften entweder nicht den Arbeitsprozess heruntergefahren oder ein längeres Timeout haben.

+0

es ist eine gemeinsame Umgebung und ich habe keine Kontrolle über iiS – Bill