Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Le novità  del .NET Framework 4.0: Web Application Preload

Le novità del .NET Framework 4.0: Web Application Preload
Le novità del .NET Framework 4.0: Web Application Preload
Link copiato negli appunti

In alcuni casi particolari possiamo avere a che fare con applicazioni web che devono caricare grandi quantità  di dati all'avvio prima di poter rispondere alla prima richiesta utente. Fino ad ora per far fronte ad una situazione di questo tipo si è dovuto ricorrere a soluzioni personalizzate ed esterne all'applicazione per fare in modo che questa partisse ed eseguisse il metodo Application_Load del Global.asax contenente il codice necessario all'inizializzazione ed al caricamento dei dati.

Per far fronte a questo genere di problematiche in ASP.NET 4.0 è stata introdotta una nuova funzionalità  denominata Application Preload Manager, ovvero una funzionalità  disponibile solo con IIS 7.5 su Windows Server 2008 R2 che per l'appunto permette di avviare automaticamente un'applicazione prima che questa sia considerata pronta a ricevere la prima richiesta utente.

Per utilizzare questa funzionalità  è necessario impostare in IIS 7.5 un application pool in modo tale che questo parta automaticamente attraverso l'impostazione del file applicationHost.config:

<applicationPools>
   <add name="MyAppPoolName" startMode="AlwaysRunning" />
</applicationPools>

Considerando poi che ogni application pool potrebbe contenere anche più di un'applicazione ASP.NET è necessario specificare, sempre nel file applicationHost.config, anche nello specifico quali applicazioni ASP.NET avviare automaticamente:

<sites>
  <site name="MyApp" id="1">
      <application path="/"
         serviceAutoStartEnabled="true"
         serviceAutoStartProvider="MyAutoStartProvider">
      </application>
   </site>
</sites>
<serviceAutoStartProviders>
   <add name="MyAutoStartProvider"
         type="MyApp.MyAutoStartClass" />
</serviceAutoStartProviders>

L'ultimo passo è la creazione di una classe AutoStartProvider che sarà  richiamata quando l'applicazione sarà  avviata. In questa classe, che implementa l'interfaccia IProcessHostPreloadClient, nel metodo Preload dobbiamo caricare tutti i dati necessari all'avvio dell'applicazione. Fin tanto che l'applicazione è in fase di avviamento e quindi mentre è in esecuzione il metodo Preload, questa sarà  impostata in una modalità  per cui non potrà  rispondere alla richieste utente.

Ti consigliamo anche