2009-09-14 12 views
11

ich ein Projekt in asp.net MVC habe, mein Hosting IIS6 verwendet, und die erste Anfrage nach der Ruhe Webseite sitzen ist sehr langsam. Ich schaute auf, http://forums.asp.net/t/1418959.aspx und fragte das Hosting für diese Einstellungen. Sie sagen, dass die tatsächlichen Einstellungen sind:erste Anfrage ist sehr langsam nach Website mit Asp.net Mvc IIS6 Leerlauf sitzt

"Der Pool ist mit Leerlauf-Timeout deaktiviert, Rapid-Fail aktiviert und mit einem einzigen Worker-Prozess."

Aber immer noch langsam bei der ersten Anfrage. Hast du noch andere Hinweise?

Vielen Dank im Voraus,

Alfredo

+0

Auf dem Server, versuchen Sie dies: Ausführen -> inetmgr -> erweitern MACHINE (lokaler Computer) -> wählen Sie Anwendungspools -> rechts den Anwendungspool klicken -> Eigenschaften -> Registerkarte Leistung -> Deaktivieren Sie die Option „Prozess Shutdown Arbeiter, nachdem sie Leerlauf für: (Zeit in Minuten) ". (Die Recyclingzeit kann auch in der Registerkarte Recycling dieser Aufforderung eingestellt werden.) – Patrick

Antwort

2

Nur eine Vermutung, aber vielleicht sind die Caching Sie einige Daten, die aktualisiert werden muss, nachdem die Website seit einiger Zeit nicht benutzt wurde?

Ist dies nicht der Fall ist, dann wäre meine Vermutung, dass der Arbeitsprozess aus irgendeinem Grund heruntergefahren wurde (es aus einem anderen Grund sein könnte, als die Leerlaufzeit in IIS). Wenn Sie überprüfen müssen, ob dies der Fall ist, können Sie dem Application_Start-Ereignis, das das Startup-Ereignis in einer Datei protokolliert, oder bei jeder vorhandenen Protokollierung Code hinzufügen. Nach einiger Zeit in Betrieb können Sie die Protokolle überprüfen und sehen, wie viele Application_Start Ereignisse aufgetreten sind.

+0

Nein, ich fange nichts. Ich fragte bereits die Ausrichtung der Arbeitsprozess Ereignisse zu protokollieren, siehe: http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/87892589-4eda-4003-b4ac-3879eac4bf48.mspx?mfr=true aber ich werde das auch versuchen. Vielen Dank! –

5

Dies ist natürlich.

IIS wird oft die Website schließen konfiguriert, wenn es ein bestimmtes Alter ist oder wenn es eine Anforderung in einer Weile nicht gewesen ist. Ihre Website muss geladen (und möglicherweise kompiliert) werden, wenn die erste Anfrage kommt, nachdem asp.net von IIS heruntergefahren wurde.

Die gemeinsame Lösung ist precompile your website bevor sie an den Server zu veröffentlichen.

+0

Ich stimme dir zu – omoto

+2

Precompiling spielt keine Rolle mit ASP.NET MVC, es ist ein Webanwendungstyp Projekt unter der Haube. –

+0

Wyatt hat Recht http://stackoverflow.com/questions/336205/can-i-precompile-my-asp-net-mvc-application –

8

Sie sind wahrscheinlich ein Opfer von worker process recycling. Fragen Sie Ihren Host, wie oft die Worker-Prozesse wiederverwertet werden.

Wenn ein Arbeitsprozess wieder verwendet wird, muss es neu kompilieren und die gesamte Web-Anwendung neu starten, und das ist, was die Verlangsamung verursacht.

+0

Ja, das war mein erster Versuch, genauso wie die Lösung, die in dem Link vorgeschlagen wurde, aber das Hosting hat die Einstellungen dafür bereits geändert und funktioniert immer noch nicht. Aber danke! –

+2

Wie lange dauert es, bis die Verlangsamung eintritt? Auch das Prozessrecycling und das Leerlauf-Timeout sind nicht dasselbe (ich habe das vielleicht nicht klargestellt) - bist du sicher, dass dein Host den richtigen geändert hat? –

+0

Ok! Ich habe dich missverstanden, mein Gastgeber sagt, dass der Arbeitsprozess alle 24 Stunden rezitiert.Jetzt funktioniert gut vorkompilieren der Website, aber ich werde eine Testumgebung einstellen und versuchen, einige Ereignisse zu protokollieren, um zu wissen, wie lange es dauert, ich möchte eine Lösung ohne Vorkompilierung finden. ich lasse es dich wissen. Danke noch einmal! –

Verwandte Themen