2013-11-23 8 views
19

Ich schreibe eine API-Anwendung ASP.NET Web auf IIS7 gehostet (keine spezielle Konfiguration).First Web API Sitzungsanforderung ist sehr langsam

Mein Problem ist, dass für jede erste Anfrage (auf einer neuen Maschine/einem neuen Browser/nach einer Weile ...) eine lange Verzögerung - auch auf Anfragen, die Konstanten zurückgeben! hier

Ich habe über „warming up“ Skripte lesen, aber es ist nicht das Problem. Es scheint, als ob der Webserver versucht, eine Sitzung zu erstellen, und es dauert sehr lange. Irgendwelche Vorschläge?

EDIT

ich denke, die Verzögerung, die durch Arbeiter-Prozesserstellung für jede neue Sitzung verursacht wird. Jetzt ist die Frage, warum ist es so langsam, und warum verwendet der Webserver nicht lebende Arbeiterprozesse, um Anfragen zu bedienen?

I haben die Anwendung Pool konfiguriert Arbeitsprozesse bis 5 ohne timeout (auf 0 gesetzt) ​​zu begrenzen. Dies führte dazu, dass die ersten fünf Sitzungen bei ersten Anfragen langsam waren (womit ich leben kann), und jetzt sind die Worker-Prozesse am Leben. Aber überraschend, von Zeit zu Zeit, ist die Anfrage wieder langsam!

+0

Was genau passiert? Ist diese erste Anfrage nach einiger Zeit so langsam, vom neuen Browserfenster, von der neuen Maschine, mit all diesen Bedingungen oder mit irgendwelchen von ihnen? –

+0

einer von ihnen. auf meinem eigenen PC passiert es nicht so ich denke, es ist ein IIS-Konfigurationsproblem – Niro

+0

jeden Tag in CRM und SharePoint spüren wir sehr Verzögerungen beim Starten von Web-Anwendungen ist dies nützlich für SharePoint-Sites ??? –

Antwort

13

Wenn Sie Windows Server 2008 R2 verwenden Sie configure the Auto-Start feature auf dem Application-Pool können. Auch in den Eigenschaften des Anwendungspools sollten Sie verhindern, dass sie in regelmäßigen Abständen wiederverwendet werden. Bedenken Sie jedoch, dass der Anwendungspool zwar von der Langsamkeit eingeschränkt werden kann, aber dennoch von IIS wiederverwendet werden kann. Mit der Auto-Start-Funktion wird es automatisch wieder in den Speicher geladen, aber der Code in Ihrem Application_Start wird bei der nächsten Anfrage ausgeführt. So konnte man immer noch etwas Langsamkeit beobachten.

+0

Danke. Es ist jetzt viel besser. Ich habe immer noch einige Leistungsprobleme, nachdem ich eine Weile nicht auf den Dienst zugegriffen habe, aber bei einer statischen Operation geht es immer schnell zurück (andere betreffen EF). – Niro

+0

Gibt es eine Lösung für den Fall, dass IIS 6.0 noch verwendet wird? :(AFAIK ist diese Funktion nur in der IIS-Version 7.5 oder höher verfügbar. –

+0

@TomasWalek, nein, ich fürchte, es ist nicht. Das war einer der Hauptgründe, warum ich aufgewertet. –

0

Eine andere Ursache kann https sein. Unsere Seite kann mit und ohne https laufen. Die Verzögerung auf der ersten Seite (5 bis 15 Sekunden) tritt nur bei Verwendung von https auf. Dieser Beitrag erklärt, das Problem mit https und das Update:

https issue by the MCS team