Condividi tramite


IIS 8.0 Application Initialization (Inizializzazione delle applicazioni in IIS 8.0)

di Shaun Eagan

Compatibilità

Versione Note
IIS 8,0 L'inizializzazione dell'applicazione è stata incorporata per IIS 8.0.
IIS 7,5 L'inizializzazione dell'applicazione è stata rilasciata come modulo fuori banda per IIS 7.5.
IIS 7.0 L'inizializzazione dell'applicazione non è supportata per IIS 7.0.

Problema

Un problema comune affrontato dagli amministratori di siti Web è la necessità di eseguire attività di inizializzazione e di "riscaldamento" per un'applicazione Web. Le applicazioni Web più grandi e complesse potrebbero dover eseguire lunghi processi di avvio, cache prime in memoria, generare contenuto e così via... prima di gestire la prima richiesta HTTP.

Soluzione

La funzionalità inizializzazione dell'applicazione IIS 8.0 consente agli amministratori del sito Web di configurare IIS 8.0 per eseguire in modo proattivo le attività di inizializzazione per una o più applicazioni Web. Durante l'inizializzazione di un'applicazione, è anche possibile configurare IIS 8.0 per restituire contenuto statico come segnaposto o "pagina iniziale" fino a quando un'applicazione non ha completato le attività di inizializzazione.

La funzionalità Inizializzazione applicazione viene configurata tramite una combinazione di regole globali e specifiche dell'applicazione che indicano a IIS 8.0 come e quando inizializzare le applicazioni Web. La funzionalità di inizializzazione dell'applicazione supporta anche l'integrazione con il modulo di riscrittura URL IIS per supportare una gestione più complessa del contenuto segnaposto mentre un'applicazione è ancora in fase di inizializzazione.

Nota

Esistono incompatibilità note tra l'inizializzazione dell'applicazione e il routing delle richieste di applicazione( ARR). Non è consigliabile usare l'inizializzazione dell'applicazione nei computer con ARR installato.

Istruzioni dettagliate

Prerequisiti

La funzionalità di inizializzazione dell'applicazione richiede l'installazione di IIS 8.0. Inoltre, è necessario installare la funzionalità di inizializzazione dell'applicazione all'interno della funzionalità secondaria "Sviluppo di applicazioni" iis.

Lo screenshot seguente dell'interfaccia utente di Windows Server 2012 Server Manager mostra la funzionalità di inizializzazione dell'applicazione.

Screenshot che mostra la funzionalità di inizializzazione dell'applicazione installata in Windows Server 2012.

Nota

Questa procedura dettagliata usa anche un'applicazione ASP.NET 4.5 per illustrare la funzionalità di inizializzazione dell'applicazione. L'Appendice alla fine di questo documento include l'applicazione di esempio e le istruzioni per la configurazione dell'applicazione nel computer.

Soluzioni alternative per i bug noti

  • Al momento non sono presenti bug noti per questa funzionalità.

Inizializzazione globale dell'applicazione

La funzionalità di inizializzazione dell'applicazione può essere configurata in due posizioni: il file di applicationHost.config a livello di computer e il file di web.config a livello di applicazione. La configurazione nel file applicationHost.config contiene impostazioni di inizializzazione dell'applicazione "globale", mentre un file di web.config a livello di applicazione contiene impostazioni di inizializzazione dell'applicazione "locale".

In questa procedura dettagliata si configurerà un'applicazione di esempio da inizializzare sempre all'avvio del pool di applicazioni associato all'applicazione. Poiché i comportamenti del pool di applicazioni possono essere configurati solo in applicationHost.config, l'inizializzazione dell'applicazione viene eseguita ogni volta che viene avviato un pool di applicazioni viene considerato parte delle impostazioni di inizializzazione dell'applicazione "globale".

Modifiche in applicationHost.config

Aprire il file applicationHost.config disponibile %WINDIR%\system32\inetsrv\config in Blocco note. Ricordarsi di eseguire l'editor di testo con l'opzione "Esegui come amministratore!".

Trovare la <sezione di configurazione applicationPools> e quindi cercare la voce del pool di applicazioni con il nome ".NET v4.5".

Modificare la voce del pool di applicazioni in modo che il pool di applicazioni sia sempre in esecuzione. Per le applicazioni in cui si desidera che venga eseguita l'inizializzazione globale dell'applicazione, in genere si vuole che il pool di applicazioni associato venga avviato e in esecuzione. L'attributo in grassetto nel frammento di configurazione mostra cosa aggiungere alla voce di configurazione.

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

Scorrere verso il basso più in applicationHost.config fino all'elemento <sites> di configurazione. All'interno di tale sezione sarà presente una <application> voce per l'applicazione di esempio (vedere l'Appendice per istruzioni sulla creazione dell'applicazione di esempio nel computer). L'applicazione è denominata "appinit" e ha un valore di attributo path "/appinit". Modificare la <application> voce aggiungendo l'attributo preloadEnabled in grassetto come illustrato nel frammento di configurazione e quindi salvare le modifiche.

<application path="/appinit" preloadEnabled="true" applicationPool=".NET v4.5">

L'impostazione di preloadEnabled su "true" indica a IIS 8.0 che invia una richiesta "fake" all'applicazione all'avvio del pool di applicazioni associato. Ecco perché nel passaggio precedente è stato impostato startMode del pool di applicazioni su "AlwaysRunning".

Con la combinazione del pool di applicazioni sempre in esecuzione e l'applicazione stessa contrassegnata per ricevere sempre una richiesta fittizia, ogni volta che il computer viene riavviato e/o il servizio Web World Wide, IIS 8.0 garantisce che l'istanza del pool di applicazioni sia in esecuzione e che l'applicazione "/appinit" venga sempre inviata una richiesta fittizia per attivare l'avvio dell'applicazione.

Modifiche nell'web.config dell'applicazione

Usando una seconda istanza del Blocco note, aprire il file a livello di applicazione web.config che si trova nel percorso seguente. Ricordarsi di eseguire l'editor di testo con l'opzione "Esegui come amministratore!".

C:\inetpub\wwwroot\appinit

Nota: modificare la lettera di unità se il sito Web predefinito è installato in un'unità fisica diversa.

Il file web.config include alcune sezioni di configurazione già prepopolato, ma impostate come commento. Rimuovere il commento dal frammento di configurazione illustrato all'interno della <system.webServer> sezione di configurazione. Questo frammento di codice è appena sotto il commento "Esercizio 1 - Passaggio 1" nel file web.config. Salvare quindi le modifiche.

<applicationInitialization
    remapManagedRequestsTo="Startup.htm" 
    skipManagedModules="true" >
  <add initializationPage="/default.aspx" />
</applicationInitialization>

L'elemento applicationInitialization indica a IIS che deve eseguire una richiesta all'URL radice dell'applicazione ("/default.aspx" in questo esempio) per inizializzare l'applicazione. Mentre IIS attende il completamento della richiesta a "/default.aspx, verrà usato "Startup.htm" a tutti i client del browser attivi. "Startup.htm" è la "pagina iniziale" per l'applicazione.

Eseguire l'applicazione

Da una finestra del prompt dei comandi con privilegi elevati riciclare il servizio Web world wide con il comando riportato di seguito:

net stop w3svc & net start w3svc

Ricordarsi di eseguire la finestra del prompt dei comandi usando l'opzione "Esegui come amministratore".

Usando Internet Explorer, passare all'URL seguente:

http://localhost/appinit/default.aspx

Il browser restituisce la pagina statica "Startup.htm" con uno sfondo grigio per i primi secondi, perché si tratta della "pagina iniziale" configurata in web.config. È possibile continuare ad aggiornare la pagina nel Web browser e osservare che circa otto secondi dopo (simulati con una sospensione del thread nell'asax globale.asax dell'applicazione di esempio) si riceve il contenuto "reale" per default.aspx con uno sfondo bianco. Indica che l'inizializzazione dell'applicazione è stata completata.

Configurazione del riciclo dei processi sovrapposti

IIS 8.0 integra l'inizializzazione globale dell'applicazione con il riciclo dei processi sovrapposti eseguendo l'inizializzazione dell'applicazione in un processo sovrapposto in background. Quando IIS rileva che un processo di lavoro attivo viene riciclato, IIS non passa il traffico attivo al nuovo processo di lavoro riciclato finché il nuovo processo di lavoro non termina l'esecuzione di tutti gli URL di inizializzazione dell'applicazione nel nuovo processo. Ciò garantisce che i clienti che esplorano il sito Web non visualizzino le pagine di inizializzazione dell'applicazione una volta che un'applicazione è attiva e in esecuzione.

Indietro all'istanza del Blocco note con applicationHost.config. Modificare la voce del pool di applicazioni per ".NET v4.5" in modo che sia simile al frammento di configurazione illustrato di seguito:

<add name=".NET v4.5"
                startMode="AlwaysRunning"
    managedRuntimeVersion="v4.0" >
  <recycling logEventOnRecycle="Schedule">
    <periodicRestart requests="30" />
  </recycling>
</add>

Ricordarsi di salvare le modifiche.

L'elemento <di riciclo> indica a IIS di riciclare il processo di lavoro ogni 30 richieste HTTP.

Eseguire l'applicazione una seconda volta

Da una finestra del prompt dei comandi con privilegi elevati riciclare il servizio Web world wide con il comando riportato di seguito:

net stop w3svc & net start w3svc

Usando una nuova istanza di Internet Explorer, passare di nuovo a:

http://localhost/appinit/default.aspx

Si noti che viene visualizzata la pagina iniziale "Startup.htm" con lo sfondo grigio.

Eseguire quindi il pull di Gestione attività e verificare che la scheda Processi sia visualizzata. Ordinare l'elenco di processi in base al nome finché non viene visualizzata un'istanza di w3wp.exe in esecuzione. Tale istanza è il processo di lavoro che esegue attualmente l'applicazione "appinit" ASP.NET.

Screenshot che mostra l'elenco di processi di Gestione attività che esegue un'istanza del file eseguibile w 3 w p.

Aggiornare il browser alcune volte fino a quando non viene restituito il contenuto della pagina default.aspx reale. L'applicazione esegue la pagina default.aspx "real" quando lo sfondo diventa bianco. Disporre quindi le finestre sullo schermo in modo da poter visualizzare sia Gestione attività che il browser.

Tornare ora al browser e aggiornare la pagina almeno 30 volte, in questo modo IIS ricicla il pool di applicazioni. È possibile interrompere l'aggiornamento della pagina quando viene visualizzata una seconda istanza di w3wp.exe nell'elenco del processo di Gestione attività, come illustrato di seguito:

Screenshot che mostra la seconda istanza del file eseguibile w 3 w p nell'elenco dei processi di Gestione attività.

Lo screenshot mostra la seconda istanza di w3wp.exe avviata a causa del limite di riciclo del processo impostato in precedenza.

È possibile continuare ad aggiornare periodicamente la finestra del browser per i dieci secondi successivi. Si noti che default.aspx continua a essere eseguito. Al termine del riciclo sovrapposto, un'istanza di w3wp.exe scompare dalla finestra Processo di Gestione attività.

Durante tutta la durata del riciclo sovrapposto, si continua a visualizzare il contenuto del file default.aspx "reale", anche se l'inizializzazione dell'applicazione è stata configurata per l'applicazione ed è stato eseguito l'URL di inizializzazione in background nella nuova istanza di w3wp.exe.

Riscrittura URL e inizializzazione dell'applicazione

Per impostazione predefinita, l'inizializzazione dell'applicazione consente solo di specificare un singolo URL di "pagina iniziale" da visualizzare durante l'inizializzazione di un'applicazione. Tuttavia, la funzionalità Di inizializzazione dell'applicazione supporta alcune variabili server che possono essere usate per controllare l'elaborazione delle richieste durante l'inizializzazione di un'applicazione. In questo modo è possibile creare regole dichiarative usando il modulo di riscrittura URL contenente mapping più complessi al contenuto statico pregenerato.

In questa procedura dettagliata si sostituisce l'attributo RemapManagedRequestsTo con un set di regole di riscrittura url che esegue lo stesso risultato finale.

Nota: vedere l'appendice per istruzioni sull'installazione della riscrittura dell'URL.

Modifiche in applicationHost.config

Usando l'istanza del Blocco note con applicationHost.config aperto, ripristinare sia il pool di applicazioni che gli elementi dell'applicazione per disattivare l'elaborazione dell'inizializzazione dell'applicazione globale. Le impostazioni globali vengono rimosse in questo passaggio poiché la parte restante di questa procedura dettagliata è incentrata sul comportamento di inizializzazione dell'applicazione configurato.

Le applicationHost.config voci per il pool di applicazioni e l'applicazione sono riportate di seguito.

Voce di configurazione del pool di applicazioni:

<add name=".NET v4.5" managedRuntimeVersion="v4.0" />

Voce di configurazione dell'applicazione:

<application path="/appinit" applicationPool=".NET v4.5">

Ricordarsi di salvare le modifiche al termine.

Inoltre, per assicurarsi che le modifiche siano effettive in IIS, da una finestra del prompt dei comandi con privilegi elevati , riciclare il servizio Web Wide World con il comando illustrato di seguito:

net stop w3svc & net start w3svc

Modifiche al livello di applicazione web.config

Usando l'istanza del Blocco note con web.config aperta a livello di applicazione, rimuovere l'attributo RemapManagedRequestsTo dall'elemento <applicationInitialization> . La <applicationInitialization> sezione di configurazione dovrebbe ora essere simile al frammento di configurazione.

<applicationInitialization skipManagedModules="true" >
  <add initializationPage="/default.aspx" />
</applicationInitialization>

Poiché l'elemento <applicationInitialization> non definisce più un URL per eseguire il mapping delle richieste a, aggiungere un set di regole di riscrittura url. Aggiungere quindi una regola di riscrittura che esegue il mapping esplicito delle richieste effettuate a "default.aspx", nonché a "/" per instradare a "Startup.htm". Sono necessarie due regole perché il modulo di riscrittura url non è "noto" sulla modalità di funzionamento dei documenti predefiniti. Poiché "/" equivale a "default.aspx" nelle applicazioni ASP.NET, sono necessarie due regole di riscrittura url: una regola per ogni variazione di URL.

Le nuove regole vengono visualizzate in grassetto di seguito. In alternativa, è possibile annullare ilcommentare le regole di riscrittura dell'URL precompilato nel commento "Esercizio 2 - Passaggio 2 Mapping richieste alla Home Page" nel file web.config.

<rewrite> 
  <rules>
    <rule name="Home Page-Expanded" stopProcessing="true">
      <match url="default.aspx" />
      <conditions>
        <add input="{APP_WARMING_UP}" pattern="1" />
      </conditions>
      <action type="Rewrite" url="Startup.htm" />
    </rule>
    <rule name="Home Page-Short" stopProcessing="true">
      <match url="^$" />
      <conditions>
        <add input="{APP_WARMING_UP}" pattern="1" />
      </conditions>
      <action type="Rewrite" url="Startup.htm" />
    </rule>
  </rules>
</rewrite>

Alcuni elementi da prendere nota di queste regole: prima di tutto, l'attributo stopProcessing è impostato su "true" nella <regola/> elementi. È necessario aggiungere una regola di riscrittura url catch-all in un secondo momento e per le richieste predefinite.aspx o "/" che non si vuole che venga eseguita la regola catch-all.

In secondo luogo, si noti che è presente una condizione di riscrittura url nelle <condizioni/> elemento. Questa condizione indica in modo efficace "applicare la regola solo quando l'applicazione si trova in uno stato di inizializzazione". La variabile server "APP_WARMING_UP" è impostata da IIS su un valore "1" quando l'inizializzazione dell'applicazione è attiva e IIS sta ancora elaborando tutti gli URL di inizializzazione.

Infine, si noti che l'azione è stata definita per riscrivere la richiesta attiva per eseguire invece "Startup.htm". Questa regola ha l'effetto di indicare a IIS di passare la richiesta al gestore di file statici che quindi esegue il rendering della pagina statica Startup.htm.

Aggiungere quindi una regola di riscrittura catch-all. Quando si usa il modulo di riscrittura url insieme all'inizializzazione dell'applicazione, è necessaria una regola catch-all che genera se non è necessaria alcuna delle regole precedenti. Aggiungere la regola in grassetto illustrata di seguito alla sezione di riscrittura come regola catch-all. In alternativa, è possibile annullare ilcommentare la regola catch-all pre-popolata in web.config che si trova nel commento "Esercizio 2 - Passaggio 2 Configurazione di una regola Catch-All" nel file web.config.

<rewrite> 
  <rules>
    <rule name="Home Page-Expanded" stopProcessing="true">
      <match url="default.aspx" />
      <conditions>
        <add input="{APP_WARMING_UP}" pattern="1" />
      </conditions>
      <action type="Rewrite" url="Startup.htm" />
    </rule>
    <rule name="Home Page-Short" stopProcessing="true">
      <match url="^$" />
      <conditions>
        <add input="{APP_WARMING_UP}" pattern="1" />
      </conditions>
      <action type="Rewrite" url="Startup.htm" />
    </rule>
    <rule name="All Other Requests">
      <match url=".*" />
      <conditions>
        <add input="{APP_WARMING_UP}" pattern="1" />
      </conditions>
      <serverVariables>
        <set name="SKIP_MANAGED_MODULES" value="0" />
      </serverVariables>
      <action type="Rewrite" url="{URL}" />
    </rule>
  </rules>
</rewrite>

Salvare le modifiche al termine.

La nuova regola corrisponde a qualsiasi URL che lo raggiunge e indica a IIS di continuare a elaborare la richiesta effettuata all'URL in ingresso. La regola imposta anche una variabile server denominata "SKIP_MANAGED_MODULES" su un valore "0" che equivale a "false". Questa impostazione indica a IIS che deve trattare la richiesta riscritta dall'URL Riscrivere lo stesso modo di se la richiesta fosse normalmente arrivata fuori dal cavo.

Eseguire l'applicazione

Da una finestra del prompt dei comandi con privilegi elevati riciclare il servizio Web Wide World Wide con il comando illustrato di seguito:

net stop w3svc & net start w3svc

Usando una nuova istanza di Internet Explorer, passare di nuovo a:

http://localhost/appinit/default.aspx

Anche se le regole di riscrittura url vengono ora usate per definire la logica della pagina iniziale, viene comunque visualizzato lo stesso comportamento dalla prima procedura dettagliata. La pagina Startup.htm con lo sfondo grigio viene visualizzata inizialmente. Se si aggiorna periodicamente il browser, circa otto secondi dopo viene visualizzato nuovamente lo sfondo della pagina in bianco, che indica che la pagina predefinita "reale".

Regole di pagina iniziale complesse

Le procedure dettagliate precedenti usano l'inizializzazione dell'applicazione come mapping diretto dell'URL "X" all'URL "Y". In questa procedura dettagliata si implementerà uno scenario di inizializzazione dell'applicazione più complesso.

Nel browser passare a entrambi gli URL seguenti:

  • http://localhost/appinit/ImageHandler.ashx?image=Lighthouse
  • http://localhost/appinit/ImageHandler.ashx?image=Tulips

Questi URL sono esempi di contenuto statico generato dinamicamente. Per questa applicazione di esempio, il codice all'interno di ImageHandler.ashx esamina la chiave querystring "image". Se il valore di tale querystring è "Lighthouse" o "Tulips" il gestore ASP.NET trasmette il file JPG corrispondente che si trova nella cartella App_Data.

Poiché il gestore delle immagini restituisce solo immagini, si vuole continuare a restituire un'immagine appropriata anche durante l'inizializzazione dell'applicazione. Anche se i meccanismi di gestione di queste immagini usano il codice gestito, è consigliabile servire rapidamente immagini pre-generate ai clienti anche se l'applicazione di ASP.NET sottostante richiede molto tempo per avviare e inizializzare se stessa.

Modifiche al livello di applicazione web.config

Usando l'istanza del Blocco note con web.config aperto a livello di applicazione, aggiungere un'altra regola di riscrittura url prima della regola catch-all finale. Di seguito è riportato il nuovo frammento di codice da aggiungere. In alternativa, è possibile annullare ilcommentare la regola del gestore immagini precompilato in web.config che si trova nel commento "Esercizio 3 - Passaggio 1 Regole di pagina iniziale complesse" nel file web.config.

<rule name="Image Handler Remapping" stopProcessing="true">
  <match url="ImageHandler.ashx" />
  <conditions>
    <add input="{APP_WARMING_UP}" pattern="1" /> 
    <add input="{QUERY_STRING}" pattern="image=([A-Za-z]+)&amp;?" /> 
  </conditions>
  <action type="Rewrite" url="Images/{C:1}_static.jpg" appendQueryString="false" />
</rule>

Salvare le modifiche al termine.

Come per le regole di riscrittura per default.aspx e "/", questa regola include l'attributo stopProcessing impostato su "true" per assicurarsi che le richieste a ImageHandler.ashx non vengano accidentalmente fall-through alla regola di riscrittura catch-all finale durante l'inizializzazione dell'applicazione.

Per le richieste a "ImageHandler.ashx", la regola di riscrittura usa un gruppo di acquisizione di espressioni regolare per estrarre l'immagine richiesta dalla stringa di query. Modello di definizione del modello di corrispondenza ="image=([A-Za-z]+)&?" indica a IIS di estrarre il valore della variabile stringa di query "image". Tale valore viene quindi usato nell'attributo URL dell'attributo azione: url="Images/{C:1}_static.jpg".

L'attributo URL nell'elemento action indica al modulo Url Rewrite di riscrivere le richieste ImageHandler.ashx per puntare invece ai file nella sottodirectory Images dell'applicazione. Inoltre, il valore della stringa di query acquisito dall'espressione regolare viene usato per formare il nome del file che verrà infine servito dalla sottodirectory Images. Ad esempio, una richiesta a ImageHandler.ashx?image=Tulips verrà riscritta in Images/Tulips_static.jpg.

Se si passa alla directory inetpub\wwwroot\appinit usando Esplora risorse e si cerca nella sottodirectory Immagini, vengono visualizzati due file: uno che rappresenta la versione "statica" di Tulips.jpg e l'altra che rappresenta la versione "statica" di Lighthouse.jpg. Queste immagini statiche fungono da contenuto pre-generato che può essere servito mentre l'applicazione inizializza.

Eseguire l'applicazione

Da una finestra del prompt dei comandi con privilegi elevati riciclare il servizio Web Wide World Wide con il comando illustrato di seguito:

net stop w3svc & net start w3svc

Usando Internet Explorer passare a:

http://localhost/appinit/ImageHandler.ashx?image=Lighthouse

oppure

http://localhost/appinit/ImageHandler.ashx?image=Tulips

Si noti come le immagini restituite in entrambi i casi includono una filigrana che indica che sono le versioni pre-generate "statiche" delle immagini. La filigrana è testo nella parte superiore dell'immagine dicendo "Questa immagine è la versione statica di...."

Se si aggiorna il browser circa 10 secondi dopo, viene visualizzata la modifica del contenuto dell'immagine restituita al contenuto "reale" gestito dal gestore ImageHandler.ashx. La filigrana scompare, che indica che il contenuto viene ora generato dinamicamente dal gestore ASP.NET poiché l'applicazione ha completato l'inizializzazione.

[Nota: se Internet Explorer non viene aggiornato, fare clic sull'icona "documento interrotto" nella barra degli indirizzi o sull'icona di aggiornamento per forzare Internet Explorer a ricaricare la pagina.

Riepilogo

La funzionalità di inizializzazione dell'applicazione IIS 8.0 offre agli sviluppatori e agli amministratori la possibilità di restituire contenuto statico ai browser mentre IIS inizializza un'applicazione "a freddo". La gestione immediata del contenuto statico ai browser offre ai clienti un'esperienza utente migliore. Invece di applicazioni a freddo che generano una pagina del browser vuota o un'icona di attesa in rotazione, la funzionalità Di inizializzazione applicazione può essere usata per servire contenuto statico pertinente mentre l'applicazione sottostante completa l'elaborazione di inizializzazione costosa.

Il processo di inizializzazione può verificarsi automaticamente ogni volta che un server Web viene portato online o riciclato. Per gli scenari in cui gli amministratori del server non vogliono inizializzare le applicazioni, il processo di inizializzazione può invece essere attivato su richiesta quando la prima richiesta arriva a un'applicazione "a freddo".

Per l'inizializzazione dell'applicazione globale e locale, è possibile integrare il modulo Di riscrittura url per fornire regole di inizializzazione più complesse e più complesse. Usando le regole di riscrittura url integrate con la funzionalità Inizializzazione applicazione è possibile gestire diversi tipi di contenuto statico pre-generato per url e percorsi virtuali diversi, mentre IIS continua a avviare un'applicazione in background.

Appendice - Configurazione dell'applicazione di esempio ASP.NET

Nota: i passaggi seguenti presuppongono che il server abbia già installato IIS 8.0 e ASP.NET 4.5 abilitato per l'uso in IIS 8.0.

Decomprimere l'applicazione di esempio

L'applicazione di esempio ASP.NET è contenuta nel file di .zip seguente:

Decomprimere il file nella cartella wwwroot nel server Web. Ad esempio, se il server Web ha installato "Sito Web predefinito" nell'unità C:\ decomprimere il contenuto del file in c:\inetpub\wwwroot\appinit.

Creare un'applicazione in IIS 8.0

Dopo aver scollegato l'esempio "appinit" nel file system, è necessario configurare la cartella come applicazione ASP.NET in IIS 8.0. La schermata seguente mostra l'applicazione di esempio appinit configurata come applicazione in IIS 8.0. Si noti anche che l'applicazione viene assegnata al pool di applicazioni ".NET v4.5".

Screenshot del menu Impostazioni avanzate di I S Manager. L'appicazione e il pool di applicazioni di esempio sono evidenziati.

Installare il modulo di riscrittura url

L'applicazione di esempio usa il modulo Di riscrittura URL per l'integrazione avanzata con la funzionalità Di inizializzazione dell'applicazione. È necessario installare il modulo Di riscrittura url nel server; può essere scaricato da: https://www.iis.net/downloads/microsoft/url-rewrite.

Configurare il modulo di riscrittura url

Dopo aver installato il modulo Di riscrittura URL nel server Web, è necessario modificare il file di applicationHost.config IIS per consentire l'utilizzo della variabile server SKIP_MANAGED_MODULES supportata dalla funzionalità Inizializzazione applicazione.

Aprire il file applicationHost.config a livello di computer in un editor di testo, ad esempio il blocco note. Ad esempio, se è stato installato il sistema operativo nell'unità C:\ il file di applicationHost.config si trova in C:\Windows\System32\inetsrv\config.

Scorrere verso il basso il file e individuare la sezione sicurezza. Questa sezione inizia con l'elemento Xml: <sicurezza>.

Digitare gli elementi Xml seguenti prima dell'elemento <di sicurezza> :

<rewrite>
  <allowedServerVariables>
    <add name="SKIP_MANAGED_MODULES" />
  </allowedServerVariables>
</rewrite>

Salvare le modifiche apportate al file di applicationHost.config.