Limites ASP <limits>

Visão geral

O elemento <limits> limites dos elementos <asp> especifica os seguintes limites de conexão e fila do ASP (Active Server Pages) para os Serviços de Informações da Internet (IIS) 7:

  • O atributo bufferingLimit define o tamanho máximo do buffer ASP. Se o buffer de resposta estiver ativado, essa propriedade controlará o número máximo de bytes que uma página ASP poderá gravar no buffer de resposta antes de ocorrer uma liberação.

  • O atributo maxRequestEntityAllowed especifica o número máximo de bytes permitidos no corpo da entidade de uma solicitação ASP. Se um cabeçalho Content-Length estiver presente e especificar uma quantidade de dados maior que o valor de maxRequestEntityAllowed, o IIS retornará um HTTP 403 resposta de erro.

  • O atributo processorThreadMax especifica o número máximo de threads de trabalho por processador que o IIS pode criar.

    Observação

    Essa configuração pode influenciar drasticamente a escalabilidade de seus aplicativos Web e o desempenho do servidor em geral. Como esse atributo define o número máximo de solicitações ASP que podem ser executadas simultaneamente, essa configuração deve permanecer no valor padrão, a menos que seus aplicativos ASP estejam fazendo chamadas estendidas para componentes externos.

  • O atributo queueConnectionTestTime especifica o número de segundos que uma solicitação pode ser enfileirada antes que o ASP determine se o cliente ainda está conectado. Se a solicitação for enfileirada por mais tempo do que o número de segundos especificado pelo atributo queueConnectionTestTime, o ASP verificará se o cliente ainda está conectado antes de executar a solicitação. Se o cliente não estiver mais conectado, a solicitação não será processada e será excluída da fila.

    Observação

    Na maioria das vezes, os usuários não esperam mais de alguns segundos para que as páginas ASP sejam processadas. Embora o tempo máximo de espera varie de usuário para usuário, o máximo geralmente aceito é de aproximadamente 10 segundos. Você pode usar o atributo queueConnectionTestTime para garantir que o IIS não perca tempo processando uma solicitação que foi abandonada pelo usuário. Esse atributo é útil para tornar o processamento ASP eficiente apenas até o ponto em que o ASP começa a processar o script. No entanto, depois que o script estiver em execução, seu aplicativo deverá continuar a verificar a conexão do cliente em momentos apropriados usando o método IsClientConnected do objeto Response interno do ASP.

  • O atributo queueTimeout especifica a quantidade de tempo (em segundos) que uma solicitação de script ASP tem permissão para aguardar na fila. Quando as solicitações são retiradas da fila, elas são verificadas para ver se expiraram (esperaram mais do que o valor desse parâmetro). As solicitações expiradas são rejeitadas com uma mensagem indicando que o servidor está muito ocupado.

  • O atributo requestQueueMax especifica o número máximo de solicitações ASP simultâneas permitidas na fila. Qualquer navegador cliente que tente solicitar arquivos ASP quando a fila estiver cheia é enviado um erro de servidor HTTP 500 Muito Ocupado.

  • O atributo scriptTimeout especifica (em segundos) o período de tempo padrão que as páginas ASP permitem que um script execute antes de encerrar o script e gravar um evento no Log de Eventos do Windows. Os scripts ASP podem substituir esse valor usando a propriedade ScriptTimeout do objeto Session interno do ASP. A propriedade ScriptTimeout permite que seus aplicativos ASP definam um valor de tempo limite de script mais alto. Por exemplo, você pode usar essa configuração para ajustar o tempo limite quando um determinado usuário estabelecer uma sessão válida fazendo logon ou ordenando um produto.

Compatibilidade

Versão Observações
IIS 10.0 O elemento <limits> não foi modificado no IIS 10.0.
IIS 8.5 O elemento <limits> não foi modificado no IIS 8.5.
IIS 8.0 O elemento <limits> não foi modificado no IIS 8.0.
IIS 7.5 O elemento <limits> não foi modificado no IIS 7.5.
IIS 7.0 O elemento <limits> do elemento <asp> foi introduzido no IIS 7.0.
IIS 6,0 O elemento <limits> substitui as seguintes propriedades de metabase dos IIS 6.0:
  • AspBufferingLimit
  • AspMaxRequestEntityAllowed
  • AspProcessorThreadMax
  • AspQueueConnectionTestTime
  • AspQueueTimeout
  • AspRequestQueueMax
  • AspScriptTimeout

Instalação

Para dar suporte e configurar aplicativos ASP em seu servidor Web, instale o módulo ASP. Execute as etapas a seguir para instalar o módulo ASP.

Windows Server 2012 R2 ou Windows Server 2012

  1. Na barra de tarefas, clique em Gerenciador do Servidor.
  2. No Gerenciador do Servidor, clique no menu Gerenciar e clique em Adicionar Funções e Recursos. No assistente Adicionar Funções e Recursos, clique em Avançar. Selecione o tipo de instalação e clique em Avançar. Selecione o servidor de destino e clique em Avançar.
  3. Na página Funções de Servidor, expanda Servidor Web (IIS), Servidor Web, Desenvolvimento do Aplicativo e selecionar ASP.
    Screenshot of A S P selected under Application development in an expanded Web Server (I I S) list.
  4. Se a caixa de diálogo Adicionar recursos exigidos pelo ASP? for exibida, clique em Adicionar recursos. (Esta página só será exibida se você ainda não tiver instalado o serviço de função Extensões ISAPI no seu servidor.)
  5. Na página Funções do Servidor, clique em Avançar.
  6. Na página Selecionar recursos, clique em Avançar.
  7. Na página Confirmar seleções de instalação, clique em Instalar.
  8. Na página Resultados , clique em Fechar.

Windows 8 ou Windows 8.1

  1. Na tela Iniciar, mova o ponteiro até o canto inferior esquerdo, clique com o botão direito do mouse no botão Iniciar e clique em Painel de Controle.

  2. Em Painel de Controle, clique em Programas e Recursos e clique em Ativar ou desativar recursos do Windows.

  3. Expanda Serviços de Informações da Internet, Serviços da World Wide Web, Recursos de Desenvolvimento de Aplicativos e selecione ASP.
    Screenshot of A S P selected in a Windows 8 interface.

    Observação

    A função Extensões ISAPI será selecionada se ainda não tiver sido instalada.

  4. Clique em OK.

  5. Clique em Fechar.

Windows Server 2008 R2 ou Windows Server 2008

  1. Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador do Servidor.
  2. No painel de hierarquia do Gerenciador do Servidor, expanda Funções e clique em Servidor Web (IIS).
  3. No painel Servidor Web (IIS), role até a seção Serviços de Função e clique em Adicionar Serviços de Função.
  4. Na página Selecionar Serviços de Função do Assistente para Adicionar Serviços de Função, selecione ASP.
    Screenshot of A S P selected under Application development in the Add Role Services Wizard.
  5. Se a caixa de diálogo Adicionar serviços de função exigidos pelo ASP for exibida, clique em Adicionar Serviços de Função Necessários. (Esta página só será exibida se você ainda não tiver instalado o serviço de função Extensões ISAPI no seu servidor.)
    Screenshot of the Add Role Services dialog with the Add Required Role Services button emphasized.
  6. Na página Selecionar Serviços de Função, clique em Avançar.
  7. Na página Confirmar Seleções de Instalação, clique em Instalar.
  8. Na página Resultados , clique em Fechar.

Windows Vista ou Windows 7

  1. Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
  2. Em Painel de Controle, clique em Programas e Recursos e clique em Ativar ou desativar Recursos do Windows.
  3. Expanda Serviços de Informações da Internet, em seguida, World Wide Web Services e Recursos de Desenvolvimento de Aplicativos.
  4. Selecione ASP e clique em OK.
    Screenshot of A S P selected in a Windows Vista or Windows 7 interface.

Instruções

Como definir as configurações do cache ASP para um servidor

  1. Abra o Gerenciador dos Serviços de Informações da Internet (IIS):

    • Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:

      • Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows 8 ou Windows 8.1:

      • Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
      • Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:

      • Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows Vista ou Windows 7:

      • Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
      • Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
  2. No painel Conexões, realce o nome do servidor.

  3. No painel Página Inicial do servidor, clique duas vezes em ASP.
    Screenshot of the SERVER Home pane with A S P selected.

  4. No painel ASP, expanda a seção Propriedades de Limites, defina as configurações desejadas e clique em Aplicar no painel Ações.
    Screenshot of the A S P pane with the Limits Properties section expanded.

Configuração

Atributos

Atributo Descrição
bufferingLimit Atributo uint opcional.

Especifica o tamanho máximo, em bytes, do buffer ASP. Se o buffer de resposta estiver ativado, essa propriedade controlará o número máximo de bytes que uma página ASP poderá gravar no buffer de resposta antes de ocorrer uma liberação. Esse valor é um inteiro entre 0 a 2147483647.

O valor padrão é 4194304.
maxRequestEntityAllowed Atributo uint opcional.

Especifica o número máximo de bytes permitidos em todo corpo de uma solicitação ASP. Esse valor é um inteiro entre 0 a 2147483647.

O valor padrão é 200000.
processorThreadMax Atributo uint opcional.

Especifica o número máximo de threads de trabalho por processador que pode ser criado pelo ASP.

O valor padrão é 25.
queueConnectionTestTime Atributo timeSpan opcional.

Especifica o intervalo de tempo (hh:mm:ss) após o qual o ASP verificará para ver se o cliente ainda está conectado antes de executar uma solicitação. Se o cliente não estiver mais conectado, a solicitação não será processada e será excluída da fila.

O valor padrão é 00:00:03.
queueTimeout Atributo timeSpan opcional.

Especifica o tempo máximo (hh:mm:ss) que uma solicitação ASP pode esperar na fila de solicitações.

O valor padrão é 00:00:00.
requestQueueMax Atributo uint opcional.

Especifica o número máximo de solicitações ASP simultâneas permitidas na fila de solicitações.

O valor padrão é 3000.
scriptTimeout Atributo timeSpan opcional.

Especifica tempo máximo que as páginas ASP permitem que um script execute antes de encerrar o script e gravar um evento no log de eventos do Windows.

O valor padrão é 00:01:30.

Elementos filho

Nenhum.

Exemplo de configuração

O exemplo de configuração a seguir define o tempo limite de script ASP como 2 minutos, a quantidade de tempo que o ASP verificará para ver se o cliente ainda está conectado antes de executar uma solicitação para 5 segundos e o número máximo de solicitações ASP simultâneas na fila de solicitações para 1.000.

<configuration>
   <system.webServer>
      <asp>
         <cache diskTemplateCacheDirectory="%SystemDrive%\inetpub\temp\ASP Compiled Templates" />
         <limits scriptTimeout="00:02:00"
            queueConnectionTestTime="00:00:05"
            requestQueueMax="1000" />
      </asp>
   <system.webServer>
<configuration>

Exemplo de código

Os códigos de exemplo a seguir definem o tempo limite de script ASP como 2 minutos, a quantidade de tempo que o ASP verificará para ver se o cliente ainda está conectado antes de executar uma solicitação para 5 segundos e o número máximo de solicitações ASP simultâneas na fila de solicitações para 1.000.

AppCmd.exe

appcmd.exe set config -section:system.webServer/asp /limits.scriptTimeout:"00:02:00" /commit:apphost
appcmd.exe set config -section:system.webServer/asp /limits.queueConnectionTestTime:"00:00:05" /commit:apphost
appcmd.exe set config -section:system.webServer/asp /limits.requestQueueMax:"1000" /commit:apphost

Observação

Defina o parâmetro commit para apphost quando usar AppCmd.exe para definir essas configurações. Isso confirma as definições de configuração para a seção de local apropriado no arquivo 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 aspSection = config.GetSection("system.webServer/asp");

         ConfigurationElement limitsElement = aspSection.GetChildElement("limits");
         limitsElement["scriptTimeout"] = TimeSpan.Parse("00:02:00");
         limitsElement["queueConnectionTestTime"] = TimeSpan.Parse("00:00:05");
         limitsElement["requestQueueMax"] = 1000;

         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 aspSection As ConfigurationSection = config.GetSection("system.webServer/asp")

      Dim limitsElement As ConfigurationElement = aspSection.GetChildElement("limits")
      limitsElement("scriptTimeout") = TimeSpan.Parse("00:02:00")
      limitsElement("queueConnectionTestTime") = TimeSpan.Parse("00:00:05")
      limitsElement("requestQueueMax") = 1000

      serverManager.CommitChanges()
   End Sub

End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";

var aspSection = adminManager.GetAdminSection("system.webServer/asp", "MACHINE/WEBROOT/APPHOST");
var limitsElement = aspSection.ChildElements.Item("limits");
limitsElement.Properties.Item("scriptTimeout").Value = "00:02:00";
limitsElement.Properties.Item("queueConnectionTestTime").Value = "00:00:05";
limitsElement.Properties.Item("requestQueueMax").Value = 1000;

adminManager.CommitChanges();

VBScript

Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"

Set aspSection = adminManager.GetAdminSection("system.webServer/asp", "MACHINE/WEBROOT/APPHOST")
Set limitsElement = aspSection.ChildElements.Item("limits")
limitsElement.Properties.Item("scriptTimeout").Value = "00:02:00"
limitsElement.Properties.Item("queueConnectionTestTime").Value = "00:00:05"
limitsElement.Properties.Item("requestQueueMax").Value = 1000

adminManager.CommitChanges()