<applicationPool> Element (Definições Web)

Especifica as definições de configuração utilizadas pelo ASP.NET para gerir o comportamento ao nível do processo quando uma aplicação ASP.NET está em execução no modo Integrado no IIS 7.0 ou numa versão posterior.

Importante

Este elemento e a funcionalidade que suporta só funcionam se a sua aplicação ASP.NET estiver alojada em versões IIS 7.0 ou posteriores.

<configuração>
  <system.web>
    <applicationPool>

Syntax

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

Atributos e Elementos

As secções seguintes descrevem atributos, elementos subordinados e elementos principais.

Atributos

Atributo Descrição
maxConcurrentRequestsPerCPU Especifica quantos pedidos simultâneos ASP.NET permite por CPU.
maxConcurrentThreadsPerCPU Especifica quantos threads simultâneos podem ser executados para um conjunto de aplicações para cada CPU. Isto fornece uma forma alternativa de controlar ASP.NET simultaneidade, uma vez que pode limitar o número de threads geridos que podem ser utilizados por CPU para servir pedidos. Por predefinição, esta definição é 0, o que significa que ASP.NET não limita o número de threads que podem ser criados por CPU, embora o conjunto de threads CLR também limite o número de threads que podem ser criados.
requestQueueLimit Especifica o número máximo de pedidos que podem ser em fila de espera para ASP.NET num único processo. Quando duas ou mais aplicações ASP.NET são executadas num único conjunto de aplicações, o conjunto cumulativo de pedidos que estão a ser feitos a qualquer aplicação no conjunto de aplicações está sujeito a esta definição.

Elementos Subordinados

Nenhum.

Elementos Principais

Elemento Descrição
<system.web> Contém informações sobre como ASP.NET interage com uma aplicação anfitriã.

Observações

Quando executa o IIS 7.0 ou uma versão posterior no modo Integrado, esta combinação de elementos permite-lhe configurar a forma como ASP.NET gere threads e pedidos de filas quando a aplicação está alojada num conjunto de aplicações do IIS. Se executar o IIS 6 ou executar o IIS 7.0 no modo Clássico ou no modo ISAPI, estas definições serão ignoradas.

As applicationPool definições aplicam-se a todos os conjuntos aplicacionais executados numa versão específica do .NET Framework. As definições estão contidas num ficheiro aspnet.config. Existe uma versão deste ficheiro para as versões 2.0 e 4.0 do .NET Framework. (As versões 3.0 e 3.5 do .NET Framework partilhar o ficheiro aspnet.config com a versão 2.0.)

Importante

Se executar o IIS 7.0 no Windows 7, pode configurar um ficheiro de aspnet.config separado para cada conjunto aplicacional. Isto permite-lhe adaptar o desempenho dos threads para cada conjunto de aplicações.

Para a maxConcurrentRequestsPerCPU definição, a predefinição de "5000" no .NET Framework 4 desativa efetivamente a limitação de pedidos controlada por ASP.NET, a menos que tenha realmente 5000 ou mais pedidos por CPU. A predefinição depende, em vez disso, do conjunto de threads CLR para gerir automaticamente a simultaneidade por CPU. As aplicações que utilizam extensivamente o processamento de pedidos assíncronos ou que têm muitos pedidos de execução prolongada bloqueados na E/S de rede beneficiarão do aumento do limite predefinido no .NET Framework 4. Definir maxConcurrentRequestsPerCPU como zero desativa a utilização de threads geridos para processamento ASP.NET pedidos. Quando uma aplicação é executada num conjunto de aplicações do IIS, os pedidos permanecem no thread de E/S do IIS e, por conseguinte, a simultaneidade é limitada pelas definições de thread do IIS.

A requestQueueLimit definição funciona da mesma forma que o requestQueueLimit atributo do elemento processModel , que está definido nos ficheiros Web.config para aplicações ASP.NET. No entanto, a requestQueueLimit definição num ficheiro de aspnet.config substitui a requestQueueLimit definição num ficheiro Web.config. Por outras palavras, se ambos os atributos estiverem definidos (por predefinição, isto é verdade), a requestQueueLimit definição no ficheiro aspnet.config tem precedência.

Exemplo

O exemplo seguinte mostra como configurar ASP.NET comportamento ao nível do processo no ficheiro de aspnet.config nas seguintes circunstâncias:

  • A aplicação está alojada num conjunto de aplicações do IIS 7.0.

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

  • A aplicação está a utilizar o .NET Framework 3,5 SP1 ou uma versão posterior.

Os valores no exemplo são os valores predefinidos.

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

Ver também