Alternativa al pool di applicazioni startMode = "AlwaysRunning"


8

Se un'applicazione Web ha richiesto di essere configurata con il suo pool di applicazioni da configurare in applicationHost.config come:

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

Lo stesso risultato si otterrebbe semplicemente richiedendo una pagina dal server ogni minuto? Oppure impostare startMode su questo valore ha anche altre implicazioni?

Risposte:


6

Sembra essere lo stesso. Apparentemente, poiché Microsoft ha visto gli sviluppatori doverlo fare, hanno creato questa nuova funzionalità per gestirla automaticamente.

[Gli sviluppatori] quindi escogitano script personalizzati per inviare richieste false all'applicazione per "svegliarlo" periodicamente ed eseguire questo codice prima che un cliente lo colpisca, o semplicemente far aspettare l'attesa sfortunata prima cliente che accede all'applicazione mentre questa logica finisce prima elaborare la richiesta (che può comportare un lungo ritardo per loro).

ASP.NET 4 viene fornito con una nuova funzionalità denominata "avvio automatico" che risponde meglio a questo scenario ed è disponibile quando ASP.NET 4 viene eseguito su IIS 7.5 (fornito con Windows 7 e Windows Server 2008 R2). La funzione di avvio automatico fornisce un approccio controllato per l'avvio di un processo di lavoro dell'applicazione, l'inizializzazione di un'applicazione ASP.NET e l'accettazione delle richieste HTTP.

Dalle applicazioni ASP.NET Auto-Start di Scott Guthrie (VS 2010 e .NET 4.0 Series) .

Quindi, a meno che tu non stia utilizzando IIS 7.5, direi solo di utilizzare la funzionalità integrata.

(E grazie; non sapevo di questa funzionalità, ma posso sicuramente pensare ai siti per cui sviluppo che potrebbero usarla.)


6
È un vero peccato che abbiano creato questa funzione a livello di applicationHost.config. Dovrebbe essere invece a livello web.config.
Chris Marisic,

4

IIS 7.5 include un flag aggiuntivo a livello di sito o di applicazione chiamato preloadEnabled. L'impostazione su true creerà una richiesta falsa per riscaldare il sito. Deve essere usato in congiunzione con autoStart.

avvio automatico

<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>
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.