fragen stichworte

WCF am Leben halten, kein IIS-Recycling

Ich habe eine WCF-Anwendung. Ich möchte diese Anwendung ständig am Leben halten.

Werden die IIS-App-Pools bei einem bestimmten Zeitraum der Inaktivität wiederverwendet?

Wie halte ich es immer am Leben?

Soll ich einen Timer verwenden?

Ich habe sensible Daten in der Anwendung, und es braucht Zeit, um sie aufzufüllen. Deswegen halte ich sie immer am Leben.

antworten

Standardmäßig wird der App-Pool in IIS nach 20 Minuten Inaktivität neu eingestellt (Einstellung für Leerlaufzeitlimit).

Sie können dies erhöhen (ich glaube, es ist gleichbedeutend mit der Einstellung auf 0, es wird kein Timeout gesetzt).

Ich denke jedoch, dass Sie besser auf die Gesamtsituation achten sollten, als lediglich das Zeitlimit für Inaktivität in IIS anzupassen.

Wie oft wird der Dienst verwendet? Ein paar Mal pro Stunde, ein paar Mal pro Minute, viele Male pro Sekunde?
Wie viele Kunden verbinden sich gleichzeitig?
Wie lange dauert das Auffüllen der Daten? Ist die Länge dieser Anfangslast wirklich ausreichend, um die Erhöhung des Leerlaufzeitlimits zu rechtfertigen? Usw.

Eine weitere Option, die zu berücksichtigen ist, ob der Dienst ständig verfügbar sein soll, besteht darin, ihn als Windows-Dienst zu hosten. Ich habe das mit einem meiner Dienste gemacht, bei denen ich einen Pool von Objekten verwalten musste.

Nur einige Dinge zu beachten.

Sie können immer einen Self-Hosting-WCF-Service erstellen und IIS insgesamt

vermeiden