Application Initialization applicationInitialization <>
Panoramica
L'elemento <applicationInitialization>
specifica che l'inizializzazione dell'applicazione Web viene eseguita in modo proattivo prima che venga ricevuta una richiesta. Un'applicazione può avviare più rapidamente se le sequenze di inizializzazione, ad esempio l'inizializzazione delle connessioni, la priming in memoria cache, l'esecuzione di query e la compilazione del codice della pagina vengono eseguite prima che venga ricevuta la richiesta HTTP. L'inizializzazione dell'applicazione può avviare automaticamente il processo di inizializzazione ogni volta che viene avviata un'applicazione. L'inizializzazione dell'applicazione non rende necessariamente più veloce il processo di inizializzazione; avvia il processo prima.
L'inizializzazione dell'applicazione consente anche di migliorare l'esperienza utente durante l'inizializzazione reindirizzando una richiesta alle pagine statiche, ad esempio un segnaposto o una schermata iniziale. Una volta caricato il sito, interromperà il mapping della richiesta gestita alla pagina statica e inizierà a servire il contenuto dinamico. Quando si usa l'attributo remapManagedRequestsTo nell'elemento <applicationInitialization>
, è possibile eseguire il mapping della richiesta gestita solo a una singola pagina. Tuttavia, l'inizializzazione dell'applicazione può essere usata insieme al modulo url IIS out-of-band per supportare una gestione più complessa del contenuto segnaposto, inclusi mapping complessi al contenuto statico pre-generato.
Oltre all'inizializzazione dell'applicazione, è possibile abilitare il processo di inizializzazione ogni volta che viene avviato il pool di applicazioni. A tale scopo, impostando l'attributo preLoadEnabled nell'elemento <application>
su "true". Per eseguire questa operazione, la modalità di avvio nell'elemento <applicationPool>
deve essere impostata su AlwaysRunning.
Compatibilità
Versione | Note |
---|---|
IIS 10.0 | L'elemento <applicationInitialization> non è stato modificato in IIS 10.0. |
IIS 8,5 | L'elemento <applicationInitialization> non è stato modificato in IIS 8.5. |
IIS 8,0 | L'elemento <applicationInitialization> è stato introdotto in IIS 8.0. |
IIS 7,5 | N/D |
IIS 7.0 | N/D |
IIS 6.0 | N/D |
Installazione
Per supportare l'inizializzazione dell'applicazione nel server Web, è necessario installare il ruolo o la funzionalità di inizializzazione dell'applicazione.
Windows Server 2012 o Windows Server 2012 R2
- Sulla barra delle applicazioni fare clic su Server Manager.
- In Server Manager fare clic sul menu Gestisci e quindi su Aggiungi ruoli e funzionalità.
- Nella procedura guidata Aggiungi ruoli e funzionalità fare clic su Avanti. Selezionare il tipo di installazione e fare clic su Avanti. Selezionare il server di destinazione e fare clic su Avanti.
- Nella pagina Ruoli server espandere Server Web (IIS) espandere Server Web, espandere Server Web, espandere Sviluppo applicazioni e quindi selezionare Inizializzazione applicazione. Fare clic su Avanti.
. - Nella pagina Selezione funzionalità fare clic su Avanti.
- Nella pagina Conferma selezioni per l'installazione fare clic su Installa.
- Nella pagina Risultati fare clic su Chiudi.
Windows 8 o Windows 8.1
- Nella schermata Start spostare il puntatore nell'angolo inferiore sinistro, fare clic con il pulsante destro del mouse sul pulsante Start e quindi fare clic su Pannello di controllo.
- In Pannello di controllo fare clic su Programmi e funzionalità e quindi su Attiva o disattiva le funzionalità di Windows.
- Espandere Internet Information Services, espandere Servizi Web a livello mondiale, espandere Funzionalità di sviluppo applicazioni e quindi selezionare Inizializzazione applicazione.
- Fare clic su OK.
- Fare clic su Close.
Procedure
Come configurare l'inizializzazione dell'applicazione
Aprire Gestione Internet Information Services (IIS):
Se si usa Windows Server 2012 o versione successiva:
- Nella barra delle applicazioni fare clic su Server Manager, scegliere Strumenti e quindi fare clic su Gestione Internet Information Services (IIS).
Se si usa Windows 8 o versione successiva:
- Tenere premuto il tasto Windows, premere la lettera X e quindi fare clic su Pannello di controllo.
- Fare clic su Strumenti di amministrazione e quindi fare doppio clic su Gestione Internet Information Services (IIS).
Nel riquadro Connessioni selezionare il server o espandere il server, espandere Siti e quindi selezionare un sito.
Nel riquadro Home fare doppio clic sulla funzionalità Editor di configurazione .
Se è stato selezionato un sito, selezionare il nome> del sito Web.confignella casella di testo Da e quindi selezionare<system.webServer/applicationInitialization nella casella di testo Sezione.
Se è stato selezionato il server, selezionare system.webServer/applicationInitialization nella casella di testo Sezione .
Per specificare il nome di un file statico da restituire durante l'inizializzazione, impostare remapManagedRequestsTo sul nome del file.
Se non si desidera caricare moduli gestiti, impostare skipManagedModules su true.
Per specificare che il processo di inizializzazione viene avviato automaticamente ogni volta che si verifica un riavvio dell'applicazione, impostare doAppInitAfterRestart su true.
Per specificare l'applicazione o le applicazioni da inizializzare al riavvio dell'applicazione, fare clic sulla riga (Raccolta) e quindi fare clic sui puntini di sospensione.
Nell'editor raccolta, per aggiungere un'applicazione da inizializzare, fare clic su Aggiungi, fare clic su hostName e quindi impostare hostName sul nome dell'host. Fare clic su inizializzazionePage e impostarlo su un URL per l'applicazione. Chiudere la finestra di dialogo.
Fare clic su Applica nel riquadro Azioni .
Configurazione
L'elemento <applicationInitialization>
è configurato a livello di server, sito o applicazione.
Attributi
Attributo | Descrizione |
---|---|
doAppInitAfterRestart |
Attributo booleano facoltativo. Specifica che il processo di inizializzazione viene avviato automaticamente ogni volta che si verifica un riavvio dell'applicazione. Si noti che questo è diverso dall'attributo preLoadEnabled nell'elemento dell'applicazione, che specifica che il processo di inizializzazione viene avviato dopo un riavvio del pool di applicazioni. Il valore predefinito è false . |
remapManagedRequestsTo |
Attributo stringa facoltativo. Specifica una pagina per eseguire il mapping di una richiesta a durante l'inizializzazione dell'applicazione. Il valore predefinito è "" . |
skipManagedModules |
Attributo booleano facoltativo. Specifica se i moduli gestiti vengono caricati () o non caricati ( false true ) durante l'inizializzazione.Il valore predefinito è false . |
Elementi figlio
Elemento | Descrizione |
---|---|
add |
Elemento facoltativo. Specifica l'applicazione da inizializzare al riavvio dell'applicazione. |
Esempio di configurazione
Nell'esempio seguente viene illustrata la configurazione dell'inizializzazione dell'applicazione.
<system.webServer>
<applicationInitialization
doAppInitAfterRestart="true"
skipManagedModules="true"
remapManagedRequestsTo="filename.htm">
<add initializationPage="/default.aspx" hostName="myhost"/>
</applicationInitialization>
</system.webServer>
Codice di esempio
Gli esempi seguenti configurano <l'applicazioneInitialization> per un sito.
AppCmd.exe
appcmd.exe set config "Default Web Site" -section:system.webServer/applicationInitialization /remapManagedRequestsTo:"HelloJoe.htm" /skipManagedModules:"True" /doAppInitAfterRestart:"True" /commit:apphost
appcmd.exe set config "Default Web Site" -section:system.webServer/applicationInitialization /+"[initializationPage='JoesSite.htm',hostName='JoesHost']" /commit:apphost
Nota
È necessario assicurarsi di impostare il parametro commit su apphost
quando si usa AppCmd.exe per configurare queste impostazioni. In questo modo le impostazioni di configurazione vengono confermate nella sezione relativa al percorso appropriato nel file ApplicationHost.config.
C#
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample {
private static void Main() {
using(ServerManager serverManager = new ServerManager()) {
Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection applicationInitializationSection = config.GetSection("system.webServer/applicationInitialization", "Default Web Site");
applicationInitializationSection["remapManagedRequestsTo"] = @"HelloJoe.htm";
applicationInitializationSection["skipManagedModules"] = true;
applicationInitializationSection["doAppInitAfterRestart"] = true;
ConfigurationElementCollection applicationInitializationCollection = applicationInitializationSection.GetCollection();
ConfigurationElement addElement = applicationInitializationCollection.CreateElement("add");
addElement["initializationPage"] = @"JoesSite.htm";
addElement["hostName"] = @"JoesHost";
applicationInitializationCollection.Add(addElement);
serverManager.CommitChanges();
}
}
}
VB.NET
Imports System
Imports System.Text
Imports Microsoft.Web.Administration
Module Sample
Sub Main()
Dim serverManager As ServerManager = New ServerManager
Dim config As Configuration = serverManager.GetApplicationHostConfiguration
Dim applicationInitializationSection As ConfigurationSection = config.GetSection("system.webServer/applicationInitialization", "Default Web Site")
applicationInitializationSection("remapManagedRequestsTo") = "HelloJoe.htm"
applicationInitializationSection("skipManagedModules") = true
applicationInitializationSection("doAppInitAfterRestart") = true
Dim applicationInitializationCollection As ConfigurationElementCollection = applicationInitializationSection.GetCollection
Dim addElement As ConfigurationElement = applicationInitializationCollection.CreateElement("add")
addElement("initializationPage") = "JoesSite.htm"
addElement("hostName") = "JoesHost"
applicationInitializationCollection.Add(addElement)
serverManager.CommitChanges
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var applicationInitializationSection = adminManager.GetAdminSection("system.webServer/applicationInitialization", "MACHINE/WEBROOT/APPHOST/Default Web Site");
applicationInitializationSection.Properties.Item("remapManagedRequestsTo").Value = "HelloJoe.htm";
applicationInitializationSection.Properties.Item("skipManagedModules").Value = true;
applicationInitializationSection.Properties.Item("doAppInitAfterRestart").Value = true;
var applicationInitializationCollection = applicationInitializationSection.Collection;
var addElement = applicationInitializationCollection.CreateNewElement("add");
addElement.Properties.Item("initializationPage").Value = "JoesSite.htm";
addElement.Properties.Item("hostName").Value = "JoesHost";
applicationInitializationCollection.AddElement(addElement);
adminManager.CommitChanges();
VBScript
Set adminManager = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set applicationInitializationSection = adminManager.GetAdminSection("system.webServer/applicationInitialization", "MACHINE/WEBROOT/APPHOST/Default Web Site")
applicationInitializationSection.Properties.Item("remapManagedRequestsTo").Value = "HelloJoe.htm"
applicationInitializationSection.Properties.Item("skipManagedModules").Value = true
applicationInitializationSection.Properties.Item("doAppInitAfterRestart").Value = true
Set applicationInitializationCollection = applicationInitializationSection.Collection
Set addElement = applicationInitializationCollection.CreateNewElement("add")
addElement.Properties.Item("initializationPage").Value = "JoesSite.htm"
addElement.Properties.Item("hostName").Value = "JoesHost"
applicationInitializationCollection.AddElement(addElement)
adminManager.CommitChanges()
PowerShell
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -location 'Default Web Site' -filter "system.webServer/applicationInitialization" -name "remapManagedRequestsTo" -value "HelloJoe.htm"
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -location 'Default Web Site' -filter "system.webServer/applicationInitialization" -name "skipManagedModules" -value "True"
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -location 'Default Web Site' -filter "system.webServer/applicationInitialization" -name "doAppInitAfterRestart" -value "True"
Add-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -location 'Default Web Site' -filter "system.webServer/applicationInitialization" -name "." -value @{initializationPage='JoesSite.htm';hostName='JoesHost'}