Funzionalità di avvio automatico
La funzionalità avvio automatico di AppFabric si basa sulla funzionalità avvio automatico di IIS (Internet Information Services) 7.5, inclusa in Windows 7 e Windows Server 2008 R2. In IIS, è possibile configurare un pool di applicazioni e fare in modo che tutte o alcune vengano eseguite automaticamente quando si avvia il servizio IIS. L'avvio automatico di AppFabric estende tale funzionalità permettendo di configurare tutti o alcuni servizi in un'applicazione in modo che vengano eseguiti automaticamente all'avvio dell'applicazione.
Vantaggi della funzionalità di avvio automatico
Quando si abilita la funzionalità avvio automatico per un servizio, quest'ultimo viene eseguito appena si avvia l'applicazione alla quale appartiene e prima di ricevere il primo messaggio WCF dal client. Di conseguenza, il servizio elabora rapidamente il primo messaggio, poiché è già inizializzato. Ad esempio, si supponga che un servizio debba connettersi a un database per leggere centinaia di righe di dati al fine di popolare una struttura di memorizzazione dati nella cache di .NET Framework appena creata. L'elaborazione dell'inizializzazione richiede molto tempo prima che il servizio sia pronto per iniziare l'operazione effettiva. Se in questo caso si utilizza avvio automatico, il servizio viene inizializzato prima di ricevere la prima chiamata.
Il componente HTTP.SYS di IIS elabora le richieste HTTP e Servizio Attivazione processo Windows le richieste TCP, named pipe e MSMQ mediante adattatori listener WCF personalizzati inclusi in IIS. L'adattore listener stabilisce la comunicazione fra WAS e un servizio che utilizza protocolli non HTTP. Per supportare l'elaborazione di messaggi ricevuti tramite un protocollo diverso, è necessario sviluppare adattatori listener e altri moduli di supporto, il che può costituire un'attività complessa. Per ulteriori informazioni sugli adattatori listener, vedere Adattatori listener (https://go.microsoft.com/fwlink/?LinkId=160359) (informazioni in lingua inglese). Grazie al supporto di avvio automatico, è possibile distribuire applicazioni qualsiasi protocollo per IIS. Se si abilita avvio automatico per queste applicazioni distribuite, WAS le attiva, e le mantiene tali, nel processo di lavoro.
Scenari di avvio automatico
I servizi che utilizzano la funzionalità di avvio automatico supportano gli scenari seguenti:
Il computer in cui è distribuita un'applicazione viene riavviato. IIS, WAS, pool di applicazioni, applicazione e servizi sono configurati per essere avviati automaticamente insieme al computer. In questo scenario i servizi vengono eseguiti automaticamente al riavvio dell'applicazione. Se l'applicazione viene configurata per l'avvio automatico di tutti i servizi, tutti i servizi dell'applicazione vengono avviati automaticamente, altrimenti vengono avviati solo i servizi specificati nel file Web.config.
Alcuni protocolli, ad esempio il protocollo di annuncio WS-Discovery, richiedono che le applicazioni siano sempre disponibili. Quando si abilita l'avvio automatico per un'applicazione e per i relativi servizi, la funzionalità di avvio automatico di Windows Server AppFabric avvia automaticamente i servizi ogni volta che viene avviata l'applicazione che li contiene.
Il pool di applicazioni a cui appartiene un servizio rileva il danneggiamento di un numero eccessivo di processi di lavoro in un periodo di tempo specificato e avvia il processo di protezione rapida da errori. La funzionalità di avvio automatico supporta la protezione rapida da errori per cui, in caso di mancata riuscita di un processo per un numero di volte superiore a quello configurato, se viene superata la soglia di protezione rapida da errori l'applicazione e i relativi servizi non vengono riavviati.
Scenario di riavvio del computer
Nell'elenco riportato di seguito sono riportati i passaggi tipici di uno scenario di esempio di riavvio del computer supportato dalla funzionalità di avvio automatico:
Il servizio WAS (Windows Process Activation Service) viene avviato se è stato configurato per l'avvio automatico. È possibile configurare WAS utilizzando l'applet Servizi degli Strumenti di amministrazione.
WAS avvia tutti i pool di applicazioni configurati per l'avvio automatico. L'impostazione startMode in tali pool di applicazioni è impostata su AlwaysRunning nel file ApplicationHost.config.
<applicationPools> <add name=”MyAppPool” startMode=”AlwaysRunning” /> </applicationPools>
La gestione delle applicazioni in WAS carica tutte le applicazioni configurate per l'avvio automatico. L'attributo serviceAutoStartEnabled di queste applicazioni è impostato su true nel file ApplicationHost.config.
<sites> <site name="MySite" id="1"> <application path="/" serviceAutoStartEnabled=”true” serviceAutoStartProvider=”Service” serviceAutoStartMode=”All/Custom”> <virtualDirectory path="/" physicalPath="C:\MySite" /> </application> </site> </sites>
Il processo di inizializzazione dell'applicazione richiama il modulo di avvio automatico, che avvia i servizi configurati per l'avvio automatico.
L'attributo serviceAutoStartProvider è un punto di estendibilità IIS che può essere utilizzato per avviare gli oggetti personalizzati. Il programma di installazione di Windows Server AppFabric installa il provider Servizio ed estende lo schema IIS per aggiungere l'attributo serviceAutoStartMode.
Se l'impostazione serviceAutoStartMode di un'applicazione è impostata su Tutti, vengono avviati tutti i servizi dell'applicazione. Se l'impostazione serviceAutoStartMode di un'applicazione è impostata su Personalizzato, vengono avviati solo i servizi specificati nel file Web.config.
Il modulo di avvio automatico utilizza il valore dell'impostazione relativeVirtualPath per caricare un servizio. Il seguente frammento di configurazione deriva da un file Web.config con le impostazioni relativeVirtualPath configurate per due servizi. Il valore di relativeVirtualPath di un servizio corrisponde al percorso del servizio relativo all'applicazione contenente il servizio.
// a sample Web.config fragment with two services configured to use the auto-start feature. <Microsoft.ProcessServer.Hosting> <serviceAutoStart> <add relativeVirtualPath =”/Calendar/Appointments.xamlx” > <add relativeVirtualPath =”/BookStore/ShoppingCart.svc” > </serviceAutoStart> </Microsoft.ProcessServer.Hosting>
Suggerimento
Le impostazioni di avvio automatico per i servizi sono archiviate nel file Web.config, quelle per i pool di applicazioni sono archiviate nel file ApplicationHost.config.
Configurazione dell'avvio automatico
È possibile utilizzare le estensioni o i cmdlet di Gestione IIS forniti da AppFabric per configurare la funzionalità avvio automatico per un servizio WCF o WF. Per istruzioni dettagliate per la configurazione della funzionalità avvio automatico, vedere gli argomenti Configurare l'avvio automatico tramite Gestione IIS e Configurare l'avvio automatico tramite i cmdlet di Windows Server AppFabric della sezione Configurazione dell'avvio automatico.
Nota
Se la funzionalità avvio automatico è abilitata per un servizio, IIS ignora l'impostazione Timeout di inattività nel pool di applicazioni e nell'applicazione che lo utilizza. Il processo di lavoro associato al pool di applicazioni viene mantenuto in memoria anche dopo che il pool di applicazioni è rimasto inattivo per un periodo di tempo più lungo del valore Timeout di inattività.
Avviso
Se il codice di inizializzazione è scritto in modo inefficiente per un servizio e l'inizializzazione richiede molto tempo, il periodo di avvio di IIS potrebbe scadere e chiudere il processo nello stato corrente. Una decisione di progettazione ottimale può prevedere l'uso di più thread nel codice di inizializzazione per il servizio, se questo viene eseguito in computer dotati di varie CPU.
Vedere anche
Concetti
Configurazione dell'avvio automatico
2011-12-05