Ich habe einen WCF-Dienst auf IIS7 installiert. Mir ist aufgefallen, dass der erste Anruf zu meinem Dienst immer sehr sehr langsam ist. Die nachfolgenden Anrufe sind viel schneller & amp; akzeptabel.
Wenn für eine bestimmte Zeit keine Anrufe an den Dienst getätigt werden, wechselt er wieder in den Energiesparmodus. Danach dauert der nächste Anruf wieder sehr lange.
Irgendwelche Mittel für dieses Problem?
Dies liegt an der Prozessverwaltung auf IIS. Wenn für einen bestimmten Zeitraum keine Anrufe eingehen, gibt IIS die Ressourcen frei und stoppt den Vorgang. Deshalb können Sie feststellen, dass es nach einer langen Verzögerung für die erste Anfrage und für Anfragen langsam ist. Denn während der ersten Anfrage oder nach längerer Ruhezeit lädt IIS alles von Grund auf neu. JIT-Compiler läuft und etc ...
Beachten Sie auch: Wenn Sie WCF-Dienste auf IIS hosten, genießen die WCF-Dienste alle Funktionen von ASP.NET-Anwendungen. Sie müssen sich dieser Features bewusst sein, da sie zu unerwartetem Verhalten in der Service-Welt führen können. Eines der wichtigsten Merkmale ist das Recycling von Anwendungen, einschließlich des Recycling von Anwendungsbereichen und des Recycling von Prozessen. Über die IIS Management Console können Sie verschiedene Regeln konfigurieren, wenn das Recycling stattfinden soll. Sie können bestimmte Schwellenwerte für den Speicher, die Zeit und die Anzahl der verarbeiteten Anforderungen festlegen. Wenn IIS einen Arbeitsprozess recycelt, werden alle Anwendungsdomänen innerhalb des Arbeitsprozesses ebenfalls wiederverwendet.
Wenn Sie automatisches Starten benötigen: Mit dem Windows-Dienststeuerungs-Manager können Sie den Starttyp auf automatisch festlegen, sodass der Dienst gestartet wird, sobald Windows gestartet wird, ohne dass eine interaktive Anmeldung erfolgt Die Maschine. So können Sie den Windows-Dienst als Host verwenden.
Weitere Details finden Sie unter Hosting und Konsum von WCF-Services .
Es gibt einen anderen Ansatz, durch den Sie es besser machen können. Wir haben irgendeine Art von Prozess, der unseren Server wie alle 5 Minuten mit sehr leichten "Fetch" -Anforderungen trifft, um alle Server "warm" zu halten (indem die meisten benötigten DLLs geladen werden), so dass die Benutzererfahrung viel besser ist.
Ich stimme zu, dass es kein narrensicherer Weg ist, aber dennoch etwas ist, was Sie außer der Erhöhung der Recyclingeinstellungen in IIS in Betracht ziehen können.
Tags und Links performance iis-7