<applicationPool> Element (Web Settings) [Elemento applicationPool> (configurações da Web)]

Especifica as definições de configuração usadas pelo ASP.NET para gerenciar o comportamento em todo o processo quando um aplicativo ASP.NET está em execução no modo integrado no IIS 7.0 ou em uma versão posterior.

Importante

Esse elemento e o recurso a que ele oferece suporte só funcionarão se o aplicativo ASP.NET estiver hospedado no IIS 7.0 ou versões posteriores.

<configuration>
  <system.web>
    <applicationPool>

Syntax

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

Atributos e elementos

As seções a seguir descrevem atributos, elementos filho e elementos pai.

Atributos

Atributo Descrição
maxConcurrentRequestsPerCPU Especifica quantas solicitações simultâneas ASP.NET são permitidas por CPU.
maxConcurrentThreadsPerCPU Especifica quantos threads simultâneos podem ser executados para um pool de aplicativos para cada CPU. Isso fornece uma maneira alternativa de controlar a simultaneidade ASP.NET, pois você pode limitar o número de threads gerenciados que podem ser usados por CPU para atender às solicitações. Por padrão, essa configuração é 0, o que significa que o ASP.NET não limita o número de threads que podem ser criados por CPU, embora o pool de threads CLR também limite o número de threads que podem ser criados.
requestQueueLimit Especifica o número máximo de solicitações que podem ser enfileiradas para ASP.NET em um único processo. Quando dois ou mais aplicativos ASP.NET são executados em um único pool de aplicativos, o conjunto cumulativo de solicitações feitas a qualquer aplicativo no pool de aplicativos estará sujeito a essa configuração.

Elementos filho

Nenhum.

Elementos pai

Elemento Descrição
<system.web> Contém informações sobre como o ASP.NET interage com um aplicativo host.

Comentários

Quando você executa o IIS 7.0 ou versões posteriores no modo Integrado, essa combinação de elementos permite configurar como o ASP.NET gerencia threads e como ele enfileira solicitações quando o aplicativo está hospedado em um pool de aplicativos do IIS. Se você executar o IIS 6 ou executar o IIS 7.0 no modo Clássico ou no modo ISAPI, essas configurações serão ignoradas.

As configurações applicationPool se aplicam a todos os pools de aplicativos executados em uma versão específica do .NET Framework. As configurações estão contidas em um arquivo aspnet.config. Há uma versão desse arquivo para as versões 2.0 e 4.0 do .NET Framework. (As versões 3.0 e 3.5 do .NET Framework compartilham o arquivo aspnet.config com a versão 2.0.)

Importante

Se você executar o IIS 7.0 no Windows 7, poderá configurar um arquivo aspnet.config separado para cada pool de aplicativos. Isso permite adaptar o desempenho dos threads para cada pool de aplicativos.

Para a configuração maxConcurrentRequestsPerCPU, a configuração padrão de "5000" no .NET Framework 4 desativa efetivamente a limitação de solicitação controlada por ASP.NET, a menos que você realmente tenha 5.000 ou mais solicitações por CPU. A configuração padrão depende, em vez disso, do pool de threads CLR para gerenciar automaticamente a simultaneidade por CPU. Os aplicativos que fazem uso extensivo do processamento de solicitações assíncronas ou que têm muitas solicitações de execução longa bloqueadas na E/S da rede se beneficiarão do limite padrão aumentado no .NET Framework 4. Definir maxConcurrentRequestsPerCPU como zero desativa o uso de threads gerenciados para processar solicitações ASP.NET. Quando um aplicativo é executado em um pool de aplicativos do IIS, as solicitações permanecem no thread de E/S do IIS e, portanto, a simultaneidade é limitada pelas configurações de thread do IIS.

A configuração requestQueueLimit funciona da mesma forma que o atributo requestQueueLimit do elemento processModel, que é definido nos arquivos Web.config para aplicativos ASP.NET. No entanto, a configuração requestQueueLimit em um arquivo aspnet.config substitui a configuração requestQueueLimit em um arquivo Web.config. Em outras palavras, se ambos os atributos forem definidos (por padrão, isso é verdadeiro), a configuração requestQueueLimit no arquivo aspnet.config terá precedência.

Exemplo

O exemplo a seguir mostra como configurar o comportamento ASP.NET em todo o processo no arquivo aspnet.config nas seguintes circunstâncias:

  • O aplicativo é hospedado em um pool de aplicativos do IIS 7.0.

  • O IIS 7.0 está em execução no modo integrado.

  • O aplicativo está usando o .NET Framework 3.5 SP1 ou uma versão posterior.

Os valores no exemplo são os valores padrão.

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

Confira também