Alternative zum Anwendungspool startMode = "AlwaysRunning"

8

Wenn eine Webanwendung die Einrichtung mit ihrem Anwendungspool forderte, der in der applicationHost.config wie folgt konfiguriert werden soll:

<add name="AppPool" managedRuntimeVersion="v4.0" startMode="AlwaysRunning" />

Würde das gleiche Ergebnis erzielt, wenn nur jede Minute eine Seite vom Server angefordert würde? Oder hat das Setzen von startMode auf diesen Wert auch andere Auswirkungen?

Chris Marisic
quelle

Antworten:

6

Es scheint dasselbe zu sein. Da Microsoft sah, dass Entwickler dies tun mussten, haben sie diese neue Funktion erstellt, um dies automatisch zu handhaben.

[Entwickler] entwickeln dann entweder benutzerdefinierte Skripte, um gefälschte Anforderungen an die Anwendung zu senden, um sie regelmäßig zu "wecken" und diesen Code auszuführen, bevor ein Kunde ihn trifft, oder lassen einfach den unglücklichen ersten Kunden, der auf die Anwendung zugreift, warten, bis diese Logik zuvor beendet ist Verarbeitung der Anfrage (was zu einer langen Verzögerung für sie führen kann).

ASP.NET 4 wird mit einer neuen Funktion namens "Autostart" ausgeliefert, die dieses Szenario besser behebt und verfügbar ist, wenn ASP.NET 4 unter IIS 7.5 ausgeführt wird (das mit Windows 7 und Windows Server 2008 R2 ausgeliefert wird). Die Autostart-Funktion bietet einen kontrollierten Ansatz zum Starten eines Application Worker-Prozesses, zum Initialisieren einer ASP.NET-Anwendung und zum anschließenden Akzeptieren von HTTP-Anforderungen.

Aus Scott Guthries Auto-Start-ASP.NET-Anwendungen (VS 2010 und .NET 4.0-Serie) .

Wenn Sie also nicht IIS 7.5 verwenden, würde ich sagen, verwenden Sie einfach die integrierte Funktionalität.

(Und danke; ich wusste nichts über diese Funktion, kann mir aber definitiv vorstellen, dass Websites, die ich dafür entwickle, sie nutzen könnten.)

James Skemp
quelle
6
Es ist eine verdammte Schande, dass sie diese Funktion auf der Ebene applicationHost.config erstellt haben. Es sollte sich stattdessen auf der Ebene web.config befinden.
Chris Marisic
4

IIS 7.5 enthält ein zusätzliches Flag auf Site- oder Anwendungsebene, das aufgerufen wird preloadEnabled. Wenn Sie dies auf true setzen, wird eine gefälschte Anforderung zum Aufwärmen der Site erstellt. Es muss in Verbindung mit verwendet werden autoStart.

Auto-Start

<add name="{yourapppoolname}" autoStart="true" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" startMode="AlwaysRunning" />

PreloadEnabled

<site name="YOURSITENAMEHERE" id="4″>
  <application path="/" applicationPool="YOURAPPPOOL" preloadEnabled="true">
  <virtualDirectory path="/" physicalPath="C:\inetpub\wwwroot\YOURSITENAME" />
  </application>
</site>
Oliver
quelle