Limiti di <ASP>

Panoramica

L'elemento <limits> dell'elemento <asp> specifica i limiti di connessione e coda di Active Server Pages (ASP) seguenti per Internet Information Services (IIS) 7:

  • L'attributo bufferingLimit imposta le dimensioni massime del buffer ASP. Se il buffer delle risposte è attivato, questo attributo controlla il numero massimo di byte che una pagina ASP può scrivere nel buffer di risposta prima che si verifichi uno scaricamento.

  • L'attributo maxRequestEntityAllowed specifica il numero massimo di byte consentiti nel corpo dell'entità di una richiesta ASP. Se è presente un'intestazione Content-Length e specifica una quantità di dati maggiore del valore maxRequestEntityAllowed, IIS restituisce una risposta di errore HTTP 403 .

  • L'attributo processorThreadMax specifica il numero massimo di thread di lavoro per processore che può essere creato da IIS.

    Nota

    Questa impostazione può influire notevolmente sulla scalabilità delle applicazioni Web e sulle prestazioni del server in generale. Poiché questo attributo definisce il numero massimo di richieste ASP che possono essere eseguite contemporaneamente, questa impostazione deve rimanere al valore predefinito, a meno che le applicazioni ASP non eseguano chiamate estese a componenti esterni.

  • L'attributo queueConnectionTestTime specifica il numero di secondi in cui è possibile accodare una richiesta prima che ASP determini se il client è ancora connesso. Se la richiesta è in coda più lunga del numero di secondi specificato dall'attributo queueConnectionTestTime , ASP verifica se il client è ancora connesso prima di eseguire la richiesta. Se il client non è più connesso, la richiesta non viene elaborata e viene eliminata dalla coda.

    Nota

    Nella maggior parte dei casi, gli utenti non attendono più di pochi secondi perché le pagine ASP vengano elaborate. Anche se il tempo di attesa massimo varia da utente a utente, il massimo generalmente accettato è di circa 10 secondi. È possibile usare l'attributo queueConnectionTestTime per assicurarsi che IIS non sprecare tempo durante l'elaborazione di una richiesta abbandonata dall'utente. Questo attributo è utile per rendere efficiente l'elaborazione ASP solo fino al punto in cui ASP inizia a elaborare lo script. Quando lo script è in esecuzione, tuttavia, l'applicazione deve continuare a verificare la connessione client in momenti appropriati usando il metodo IsClientConnected dell'oggetto Response predefinito ASP.

  • L'attributo queueTimeout specifica la quantità di tempo (in secondi) consentita da una richiesta di script ASP nella coda. Quando le richieste vengono estratte dalla coda, vengono controllate per verificare se sono scadute (sono state attese più a lungo del valore di questo parametro). Le richieste scadute vengono rifiutate con un messaggio che indica che il server è troppo occupato.

  • L'attributo requestQueueMax specifica il numero massimo di richieste ASP simultanee consentite nella coda. Qualsiasi browser client che tenta di richiedere file ASP quando la coda è piena viene inviato un errore HTTP 500 Server Too Busy .

  • L'attributo scriptTimeout specifica (in secondi) il periodo di tempo predefinito per cui le pagine ASP consentono l'esecuzione di uno script prima di terminare lo script e scrivere un evento nel registro eventi di Windows. Gli script ASP possono eseguire l'override di questo valore usando la proprietà ScriptTimeout dell'oggetto Session predefinito ASP. La proprietà ScriptTimeout consente alle applicazioni ASP di impostare un valore di timeout dello script superiore. Ad esempio, è possibile usare questa impostazione per regolare il timeout dopo che un determinato utente stabilisce una sessione valida effettuando l'accesso o ordinando un prodotto.

Compatibilità

Versione Note
IIS 10.0 L'elemento <limits> non è stato modificato in IIS 10.0.
IIS 8,5 L'elemento <limits> non è stato modificato in IIS 8.5.
IIS 8,0 L'elemento <limits> non è stato modificato in IIS 8.0.
IIS 7,5 L'elemento <limits> non è stato modificato in IIS 7.5.
IIS 7.0 L'elemento <limits> dell'elemento <asp> è stato introdotto in IIS 7.0.
IIS 6.0 L'elemento <limits> sostituisce le proprietà della metabase IIS 6.0 seguenti:
  • AspBufferingLimit
  • AspMaxRequestEntityAllowed
  • AspProcessorThreadMax
  • AspQueueConnectionTestTime
  • AspQueueTimeout
  • AspRequestQueueMax
  • AspScriptTimeout

Installazione

Per supportare e configurare applicazioni ASP nel server Web, è necessario installare il modulo ASP. Per installare il modulo ASP, seguire questa procedura.

Windows Server 2012 o Windows Server 2012 R2

  1. Sulla barra delle applicazioni fare clic su Server Manager.
  2. In Server Manager fare clic sul menu Gestisci e quindi su Aggiungi ruoli e funzionalità. - Nella procedura guidata Aggiungi ruoli e funzionalità fare clic su Avanti. Selezionare il tipo di installazione e fare clic su Avanti. Selezionare il server di destinazione e fare clic su Avanti.
  3. Nella pagina Ruoli server espandere Server Web (IIS), server Web, espandere Server Web, espandere Sviluppo di applicazioni e quindi selezionare ASP.
    Screenshot di A S P selezionato in Sviluppo di applicazioni in un elenco di server Web espanso (I S).
  4. Se viene visualizzata la finestra di dialogo Aggiungi funzionalità richieste da ASP? fare clic su Aggiungi funzionalità. Questa pagina viene visualizzata solo se non è già stato installato il servizio ruolo Estensioni ISAPI nel server.
  5. Nella pagina Ruoli del server fare clic su Avanti.
  6. Nella pagina Selezione funzionalità fare clic su Avanti.
  7. Nella pagina Conferma selezioni per l'installazione fare clic su Installa.
  8. Nella pagina Risultati fare clic su Chiudi.

Windows 8 o Windows 8.1

  1. Nella schermata Start spostare il puntatore fino all'angolo inferiore sinistro, fare clic con il pulsante destro del mouse sul pulsante Start e quindi scegliere Pannello di controllo.

  2. In Pannello di controllo fare clic su Programmi e funzionalità e quindi su Attiva o disattiva funzionalità di Windows.

  3. Espandere Internet Information Services, servizi Web a livello mondiale, funzionalità di sviluppo di applicazioni e quindi selezionare ASP.
    Screenshot di A S P selezionato in un'interfaccia di Windows 8.

    Nota

    Il ruolo Estensioni ISAPI verrà selezionato se non è già stato installato.

  4. Fare clic su OK.

  5. Fare clic su Close.

Windows Server 2008 o Windows Server 2008 R2

  1. Sulla barra delle applicazioni fare clic su Start, scegliere Strumenti di amministrazione, quindi fare clic su Server Manager.
  2. Nel riquadro della gerarchia Server Manager espandere Ruoli, quindi fare clic su Server Web (IIS).
  3. Nel riquadro Server Web (IIS) scorrere fino alla sezione Servizi ruolo e quindi fare clic su Aggiungi servizi ruolo.
  4. Nella pagina Selezione servizi ruolo della Procedura guidata Aggiungi servizi ruolo selezionare ASP.
    Screenshot di A S P selezionato in Sviluppo di applicazioni nella Procedura guidata Aggiungi servizi ruolo.
  5. Se viene visualizzata la finestra di dialogo Aggiungi servizi ruolo richiesti da ASP , fare clic su Aggiungi servizi ruolo obbligatori. Questa pagina viene visualizzata solo se non è già stato installato il servizio ruolo Estensioni ISAPI nel server.
    Screenshot della finestra di dialogo Aggiungi servizi ruolo con il pulsante Add Required Role Services evidenziato.
  6. Nella pagina Selezione servizi ruolo fare clic su Avanti.
  7. Nella pagina Conferma selezioni per l'installazione fare clic su Installa.
  8. Nella pagina Risultati fare clic su Chiudi.

Windows Vista o Windows 7

  1. Sulla barra delle applicazioni fare clic su Start e quindi su Pannello di controllo.
  2. In Pannello di controllo fare clic su Programmi e funzionalità e quindi su Attiva o disattiva funzionalità di Windows.
  3. Espandere Internet Information Services, quindi Servizi Web a livello mondiale, quindi Funzionalità di sviluppo di applicazioni.
  4. Selezionare ASP e quindi fare clic su OK.
    Screenshot di A S P selezionato in un'interfaccia di Windows Vista o Windows 7.

Procedure

Come configurare le impostazioni della cache ASP per un server

  1. Aprire Gestione Internet Information Services (IIS):

    • Se si usa Windows Server 2012 o Windows Server 2012 R2:

      • Nella barra delle applicazioni fare clic su Server Manager, scegliere Strumenti e quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows 8 o Windows 8.1:

      • Tenere premuto il tasto Windows, premere la lettera X e quindi fare clic su Pannello di controllo.
      • Fare clic su Strumenti di amministrazione e quindi fare doppio clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Server 2008 o Windows Server 2008 R2:

      • Nella barra delle applicazioni fare clic su Start, scegliere Strumenti di amministrazione e quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Vista o Windows 7:

      • Nella barra delle applicazioni fare clic su Start e quindi fare clic su Pannello di controllo.
      • Fare doppio clic su Strumenti di amministrazione e quindi fare doppio clic su Gestione Internet Information Services (IIS).
  2. Nel riquadro Connessioni evidenziare il nome del server.

  3. Nel riquadro Home del server fare doppio clic su ASP.
    Screenshot del riquadro Home SERVER con A S P selezionato.

  4. Nel riquadro ASP espandere la sezione Proprietà limiti configurare le impostazioni desiderate e quindi fare clic su Applica nel riquadro Azioni .
    Screenshot del riquadro A S P con la sezione Proprietà limiti espansa.

Configurazione

Attributi

Attributo Descrizione
bufferingLimit Attributo uint facoltativo.

Specifica le dimensioni massime, in byte, del buffer ASP. Se il buffer delle risposte è attivato, questo attributo controlla il numero massimo di byte che una pagina ASP può scrivere nel buffer di risposta prima che si verifichi un download. Questo valore è un intero nell'intervallo compreso tra 0 e 2147483647.

Il valore predefinito è 4194304.
maxRequestEntityAllowed Attributo uint facoltativo.

Specifica il numero massimo di byte consentiti nell'intero corpo di una richiesta ASP. Questo valore è un intero nell'intervallo compreso tra 0 e 2147483647.

Il valore predefinito è 200000.
processorThreadMax Attributo uint facoltativo.

Specifica il numero massimo di thread di lavoro per processore che ASP può creare.

Il valore predefinito è 25.
queueConnectionTestTime Attributo timeSpan facoltativo.

Specifica l'intervallo di tempo (hh:mm:ss) dopo il quale ASP verificherà se il client è ancora connesso prima di eseguire una richiesta. Se il client non è più connesso, la richiesta non viene elaborata e viene eliminata dalla coda.

Il valore predefinito è 00:00:03.
queueTimeout Attributo timeSpan facoltativo.

Specifica il periodo massimo di tempo (hh:mm:ss) che una richiesta ASP può attendere nella coda della richiesta.

Il valore predefinito è 00:00:00.
requestQueueMax Attributo uint facoltativo.

Specifica il numero massimo di richieste ASP simultanee consentite nella coda della richiesta.

Il valore predefinito è 3000.
scriptTimeout Attributo timeSpan facoltativo.

Specifica il periodo massimo di tempo (hh:mm:ss) che le pagine ASP consentono l'esecuzione di uno script prima di terminare lo script e scrivere un evento nel registro eventi di Windows.

Il valore predefinito è 00:01:30.

Elementi figlio

Nessuno.

Esempio di configurazione

L'esempio di configurazione seguente imposta il timeout dello script ASP su 2 minuti, la quantità di tempo che ASP verificherà se il client è ancora connesso prima di eseguire una richiesta a 5 secondi e il numero massimo di richieste ASP simultanee nella coda di richieste a 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>

Codice di esempio

Gli esempi di codice seguenti impostano il timeout dello script ASP su 2 minuti, la quantità di tempo in cui ASP verificherà se il client è ancora connesso prima di eseguire una richiesta a 5 secondi e il numero massimo di richieste ASP simultanee nella coda di richieste a 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

Nota

È necessario assicurarsi di impostare il parametro commit su apphost quando si usa AppCmd.exe per configurare queste impostazioni. Questa operazione esegue il commit delle impostazioni di configurazione nella sezione percorso appropriata nel file di 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()