<Elemento applicationPool> (impostazioni Web)

Specifica le impostazioni di configurazione usate da ASP.NET per gestire il comportamento a livello di processo quando un'applicazione ASP.NET è in esecuzione in modalità integrata in IIS 7.0 o versione successiva.

Importante

Questo elemento e la funzionalità supporta solo se l'applicazione ASP.NET è ospitata in IIS 7.0 o versioni successive.

<Configurazione>
  <system.web>
    <applicationPool>

Sintassi

<applicationPool
    maxConcurrentRequestsPerCPU="5000"
    maxConcurrentThreadsPerCPU="0"
    requestQueueLimit="5000" />  

Attributi ed elementi

Nelle sezioni seguenti vengono descritti gli attributi, gli elementi figlio e gli elementi padre.

Attributi

Attributo Descrizione
maxConcurrentRequestsPerCPU Specifica il numero di richieste simultanee ASP.NET consentite per CPU.
maxConcurrentThreadsPerCPU Specifica il numero di thread simultanei in esecuzione per un pool di applicazioni per ogni CPU. In questo modo è possibile controllare ASP.NET concorrenza, perché è possibile limitare il numero di thread gestiti che possono essere usati per ogni CPU per gestire le richieste. Per impostazione predefinita, questa impostazione è 0, ovvero ASP.NET non limita il numero di thread che possono essere creati per CPU, anche se il pool di thread CLR limita anche il numero di thread che possono essere creati.
requestQueueLimit Specifica il numero massimo di richieste che possono essere accodate per ASP.NET in un singolo processo. Quando due o più applicazioni ASP.NET vengono eseguite in un singolo pool di applicazioni, il set cumulativo di richieste effettuate a qualsiasi applicazione nel pool di applicazioni è soggetto a questa impostazione.

Elementi figlio

Nessuno.

Elementi padre

Elemento Descrizione
<system.web> Contiene informazioni su come ASP.NET interagisce con un'applicazione host.

Commenti

Quando si esegue IIS 7.0 o una versione successiva in modalità integrata, questa combinazione di elementi consente di configurare il modo in cui ASP.NET gestisce thread e code quando l'applicazione è ospitata in un pool di applicazioni IIS. Se si esegue IIS 6 o si esegue IIS 7.0 in modalità classica o in modalità ISAPI, queste impostazioni vengono ignorate.

Le applicationPool impostazioni si applicano a tutti i pool di applicazioni eseguiti in una determinata versione di .NET Framework. Le impostazioni sono contenute in un file di aspnet.config. È disponibile una versione di questo file per le versioni 2.0 e 4.0 di .NET Framework. Le versioni 3.0 e 3.5 di .NET Framework condividono il file di aspnet.config con la versione 2.0.

Importante

Se si esegue IIS 7.0 in Windows 7, è possibile configurare un file di aspnet.config separato per ogni pool di applicazioni. In questo modo è possibile personalizzare le prestazioni dei thread per ogni pool di applicazioni.

Per l'impostazione maxConcurrentRequestsPerCPU , l'impostazione predefinita di "5000" in .NET Framework 4 disattiva effettivamente la limitazione delle richieste controllata da ASP.NET, a meno che non siano effettivamente presenti 5000 o più richieste per CPU. L'impostazione predefinita dipende invece dal pool di thread CLR per gestire automaticamente la concorrenza per CPU. Le applicazioni che usano ampiamente l'elaborazione asincrona delle richieste o che hanno molte richieste a esecuzione prolungata bloccate in rete I/O, traggono vantaggio dall'aumento del limite predefinito in .NET Framework 4. L'impostazione maxConcurrentRequestsPerCPU su zero disattiva l'uso di thread gestiti per l'elaborazione di richieste di ASP.NET. Quando un'applicazione viene eseguita in un pool di applicazioni IIS, le richieste rimangono nel thread di I/O IIS e pertanto la concorrenza viene limitata dalle impostazioni del thread IIS.

L'impostazione requestQueueLimit funziona allo stesso modo dell'attributo dell'elemento requestQueueLimitprocessModel , impostato nei file di Web.config per le applicazioni ASP.NET. Tuttavia, l'impostazione in un file di aspnet.config esegue l'override dell'impostazione requestQueueLimitrequestQueueLimit in un file Web.config. In altre parole, se entrambi gli attributi vengono impostati (per impostazione predefinita, questa è true), l'impostazione nel file aspnet.config ha la requestQueueLimit precedenza.

Esempio

Nell'esempio seguente viene illustrato come configurare ASP.NET comportamento a livello di processo nel file aspnet.config nelle circostanze seguenti:

  • L'applicazione è ospitata in un pool di applicazioni IIS 7.0.

  • IIS 7.0 è in esecuzione in modalità integrata.

  • L'applicazione usa .NET Framework 3.5 SP1 o una versione successiva.

I valori dell'esempio sono i valori predefiniti.

<configuration>  
  <system.web>  
    <applicationPool
        maxConcurrentRequestsPerCPU="5000"  
        maxConcurrentThreadsPerCPU="0"
        requestQueueLimit="5000" />  
  </system.web>  
</configuration>  

Vedi anche