Límites de ASP <limits>
Información general
El elemento <limits>
del elemento <asp>
especifica los siguientes límites de conexión y de cola de páginas Active Server (ASP) para Internet Information Services (IIS) 7:
El atributo bufferingLimit establece el tamaño máximo del búfer de ASP. Si el almacenamiento en búfer de respuesta está activado, este atributo controla el número máximo de bytes que puede escribir una página ASP en el búfer de respuesta antes de que se produzca un vaciado.
El atributo maxRequestEntityAllowed especifica el número máximo de bytes permitidos en el cuerpo de la entidad de una solicitud ASP. Si existe un encabezado Content-Length y especifica una cantidad de datos superior al valor de maxRequestEntityAllowed, IIS devuelve una respuesta de error HTTP 403.
El atributo processorThreadMax especifica el número máximo de subprocesos de trabajo por procesador que IIS puede crear.
Nota:
Esta configuración puede influir considerablemente en la escalabilidad de las aplicaciones web y el rendimiento del servidor en general. Dado que este atributo define el número máximo de solicitudes ASP que se pueden ejecutar de forma simultánea, esta configuración debe mantener el valor predeterminado a menos que las aplicaciones ASP estén realizando llamadas extendidas a componentes externos.
El atributo queueConnectionTestTime especifica el número de segundos que una solicitud se puede poner en cola antes de que ASP determine si el cliente sigue conectado. Si la solicitud se pone en cola un tiempo superior al número de segundos especificado por el atributo queueConnectionTestTime, ASP comprueba si el cliente todavía está conectado antes de ejecutar la solicitud. Si el cliente ya no está conectado, la solicitud no se procesa y se elimina de la cola.
Nota:
La mayoría de las veces, los usuarios tan solo esperan unos segundos para que las páginas ASP se procesen. Si bien el tiempo máximo de espera varía de un usuario a otro, el máximo aceptado de forma general es de aproximadamente 10 segundos. Puede usar el atributo queueConnectionTestTime para asegurarse de que IIS no pierda tiempo en el proceso de una solicitud abandonada por el usuario. Este atributo es útil para hacer que el procesamiento de ASP solo sea eficaz hasta el punto en el que ASP comienza a procesar el script. Sin embargo, una vez que el script se está ejecutando, la aplicación debe seguir comprobando la conexión del cliente en los momentos adecuados mediante el método IsClientConnected del objeto Response integrado de ASP.
El atributo queueTimeout especifica la cantidad de tiempo (en segundos) que se permite que una solicitud de script de ASP espere en la cola. Cuando las solicitudes se extraen de la cola, se comprueban para ver si han expirado (han esperado durante un tiempo superior al valor de este parámetro). Las solicitudes que hayan expirado se rechazan y se muestra un mensaje que indica que el servidor está demasiado ocupado.
El atributo requestQueueMax especifica el número máximo de solicitudes ASP simultáneas permitidas en la cola. A cualquier explorador cliente que intente solicitar archivos ASP cuando la cola está llena se le envía un error HTTP 500: El servidor está muy ocupado.
El atributo scriptTimeout especifica la duración de tiempo predeterminada (en segundos) que dejan las páginas ASP para que se ejecute un script antes de terminar el script y escribir un evento en el registro de eventos de Windows. Los scripts de ASP pueden reemplazar este valor con la propiedad ScriptTimeout del objeto Session integrado de ASP. La propiedad ScriptTimeout permite a las aplicaciones ASP establecer un valor de tiempo de espera más alto para un script. Por ejemplo, puede usar esta configuración para ajustar el tiempo de espera una vez que un usuario determinado establezca una sesión válida al iniciar sesión o pedir un producto.
Compatibilidad
Versión | Notas |
---|---|
IIS 10.0 | El elemento <limits> no se modificó en IIS 10.0. |
IIS 8.5 | El elemento <limits> no se modificó en IIS 8.5. |
IIS 8.0 | El elemento <limits> no se modificó en IIS 8.0. |
IIS 7.5 | El elemento <limits> no se modificó en IIS 7.5. |
IIS 7.0 | El elemento <limits> del elemento <asp> se introdujo en IIS 7.0. |
IIS 6,0 | El elemento <limits> reemplaza las siguientes propiedades de metabase de IIS 6.0:
|
Configuración
Para admitir y configurar aplicaciones ASP en el servidor web, debe instalar el módulo ASP. Para instalar el módulo ASP, siga estos pasos.
Windows Server 2012 o Windows Server 2012 R2
- En la barra de tareas, haga clic en Administrador del servidor.
- En Administrador del servidor, haga clic en el menú Administrar y, después, haga clic en Agregar roles y características. - En el Asistente para agregar roles y características, haga clic en Siguiente. Seleccione el tipo de instalación y haga clic en Siguiente. Seleccione el servidor de destino y haga clic en Siguiente.
- En la página Roles de servidor, expanda sucesivamente Servidor web (IIS), Servidor web y Desarrollo de aplicaciones y, a continuación, seleccione ASP.
- Si el aparece el cuadro de diálogo ¿Agregar características necesarias para ASP?, haga clic en Agregar características. (Esta página solo aparece si aún no se ha instalado el servicio de rol de extensiones de ISAPI en el servidor).
- En la página Roles de servidor, haga clic en Siguiente.
- En la página Seleccionar características, haz clic en Siguiente.
- En la página Confirmar selecciones de instalación, haga clic en Instalar.
- En la página Resultados , haga clic en Cerrar.
Windows 8 o Windows 8.1
En la pantalla Inicio, mueva el puntero hasta la esquina inferior izquierda, haga clic con el botón derecho en el botón Inicio y, a continuación, haga clic en Panel de control.
En Panel de control, haga clic en Programas y características y después en Activar o desactivar las características de Windows.
Expanda sucesivamente Internet Information Services, World Wide Web Services y Características de desarrollo de aplicaciones y, a continuación, seleccione ASP.
Nota:
El rol de extensiones ISAPI se seleccionará si aún no se ha instalado.
Haga clic en OK.
Haga clic en Cerrar.
Windows Server 2008 o Windows Server 2008 R2
- En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, luego, haga clic en Administrador del servidor.
- En el panel de jerarquía del Administrador del servidor, expanda Roles y, luego, haga clic en Servidor web (IIS).
- En el panel Servidor web (IIS), desplácese hasta la sección Servicios de rol y, luego, haga clic en Agregar servicios de rol.
- En la página Seleccionar servicios de rol del Asistente para agregar servicios de rol, seleccione ASP.
- Si aparece el cuadro de diálogo Agregar servicios de rol necesarios para ASP, haga clic en Agregar servicios de rol necesarios. (Esta página solo aparece si aún no se ha instalado el servicio de rol de extensiones de ISAPI en el servidor).
- En la página Seleccionar servicios de rol, haga clic en Siguiente.
- En la página Confirmar selecciones de instalación, haz clic en Instalar.
- En la página Resultados , haga clic en Cerrar.
Windows Vista o Windows 7
- En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
- En Panel de control, haga clic en Programas y características y después en Activar o desactivar las características de Windows.
- Expanda Internet Information Services, luego World Wide Web Services y luego Características de desarrollo de aplicaciones.
- Seleccione ASP y después haga clic en Aceptar.
Procedimientos
Cómo configurar las opciones de caché de ASP para un servidor
Abra el Administrador de Internet Information Services (IIS):
Si usa Windows Server 2012 o Windows Server 2012 R2:
- En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
Si usa Windows 8 o Windows 8.1:
- Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
- Haga clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
Si usa Windows Server 2008 o Windows Server 2008 R2:
- En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
Si usa Windows Vista o Windows 7:
- En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
- Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
En el panel Conexiones, resalte el nombre de su servidor.
En el panel Inicio del servidor, haga doble clic en ASP.
En el panel ASP, expanda la sección de límites de propiedades, establezca la configuración deseada y, a continuación, haga clic en Aplicar en el panel Acciones.
Configuración
Atributos
Atributo | Descripción |
---|---|
bufferingLimit |
Atributo uint opcional. Especifica el tamaño máximo, en bytes, del búfer de ASP. Si el almacenamiento en búfer de respuesta está activado, este atributo controla el número máximo de bytes que puede escribir una página ASP en el búfer de respuesta antes de que se produzca un vaciado. Este valor es un entero del intervalo comprendido entre 0 y 2147483647. El valor predeterminado es 4194304 . |
maxRequestEntityAllowed |
Atributo uint opcional. Especifica el número máximo de bytes permitidos en todo el cuerpo de una solicitud ASP. Este valor es un entero del intervalo comprendido entre 0 y 2147483647. El valor predeterminado es 200000 . |
processorThreadMax |
Atributo uint opcional. Especifica el número máximo de subprocesos de trabajo que puede crear ASP por cada procesador. El valor predeterminado es 25 . |
queueConnectionTestTime |
Atributo timeSpan opcional. Especifica el intervalo de tiempo (hh:mm:ss) después del cual ASP comprobará si el cliente sigue conectado antes de ejecutar una solicitud. Si el cliente ya no está conectado, la solicitud no se procesa y se elimina de la cola. El valor predeterminado es 00:00:03 . |
queueTimeout |
Atributo timeSpan opcional. Especifica el período de tiempo máximo (hh:mm:ss) que una solicitud ASP puede esperar en la cola de solicitudes. El valor predeterminado es 00:00:00 . |
requestQueueMax |
Atributo uint opcional. Especifica el número máximo de solicitudes ASP simultáneas que se permiten en la cola de solicitudes. El valor predeterminado es 3000 . |
scriptTimeout |
Atributo timeSpan opcional. Especifica el período máximo de tiempo (hh:mm:ss) que dejan las páginas ASP para que se ejecute un script antes de terminar el script y escribir un evento en el registro de eventos de Windows. El valor predeterminado es 00:01:30 . |
Elementos secundarios
Ninguno.
Ejemplo de configuración
En el ejemplo de configuración siguiente se establece el tiempo de espera del script de ASP en 2 minutos, la cantidad de tiempo que ASP tardará en comprobar si el cliente sigue conectado antes de ejecutar una solicitud en 5 segundos y el número máximo de solicitudes de ASP simultáneas en la cola de solicitudes en 1000.
<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>
Código de ejemplo
En los ejemplos de código siguientes se establece el tiempo de espera del script de ASP en 2 minutos, la cantidad de tiempo que ASP tardará en comprobar si el cliente sigue conectado antes de ejecutar una solicitud en 5 segundos y el número máximo de solicitudes de ASP simultáneas en la cola de solicitudes en 1000.
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:
Debe asegurarse de establecer el parámetro de confirmación en apphost
cuando use AppCmd.exe para configurar estas opciones. Esto confirma los valores de configuración en la sección de ubicación adecuada del archivo 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()