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

  1. Sulla barra delle applicazioni fare clic su Server Manager.
  2. In Server Manager fare clic sul menu Gestisci e quindi su Aggiungi ruoli e funzionalità.
  3. 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.
  4. 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.
    Screenshot che mostra il riquadro Ruoli. L'inizializzazione dell'applicazione è evidenziata e selezionata. .
  5. Nella pagina Selezione funzionalità fare clic su Avanti.
  6. Nella pagina Conferma selezioni per l'installazione fare clic su Installa.
  7. Nella pagina Risultati fare clic su Chiudi.

Windows 8 o Windows 8.1

  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.
  2. In Pannello di controllo fare clic su Programmi e funzionalità e quindi su Attiva o disattiva le funzionalità di Windows.
  3. Espandere Internet Information Services, espandere Servizi Web a livello mondiale, espandere Funzionalità di sviluppo applicazioni e quindi selezionare Inizializzazione applicazione.
    Screenshot che mostra il riquadro Funzionalità di Windows. L'inizializzazione dell'applicazione è evidenziata e attivata.
  4. Fare clic su OK.
  5. Fare clic su Close.

Procedure

Come configurare l'inizializzazione dell'applicazione

  1. 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).
  2. Nel riquadro Connessioni selezionare il server o espandere il server, espandere Siti e quindi selezionare un sito.

  3. Nel riquadro Home fare doppio clic sulla funzionalità Editor di configurazione .

  4. 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.

  5. Se è stato selezionato il server, selezionare system.webServer/applicationInitialization nella casella di testo Sezione .

    Screenshot che mostra il riquadro Editor di configurazione. Raccolta evidenziata.

  6. Per specificare il nome di un file statico da restituire durante l'inizializzazione, impostare remapManagedRequestsTo sul nome del file.

  7. Se non si desidera caricare moduli gestiti, impostare skipManagedModules su true.

  8. Per specificare che il processo di inizializzazione viene avviato automaticamente ogni volta che si verifica un riavvio dell'applicazione, impostare doAppInitAfterRestart su true.

  9. 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.

  10. 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.

    Screenshot che mostra il riquadro Editor raccolta. Il nome host è evidenziato nella casella Proprietà.

  11. 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 (falsetrue) 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'}