ASP-Grenzwerte <limits>

Übersicht

Das <limits>-Element des <asp>-Elements gibt die folgenden Verbindungs- und Warteschlangengrenzwerte von Active Server Pages (ASP) für Internetinformationsdienste 7 (Internet Information Services, IIS) an:

  • Das bufferingLimit-Attribut legt die maximale Größe des ASP-Puffers fest. Bei aktivierter Antwortpufferung steuert dieses Attribut die maximale Anzahl von Bytes, die eine ASP-Seite in den Antwortpuffer schreiben kann, bevor dieser geleert wird.

  • Das maxRequestEntityAllowed-Attribut gibt die maximal zulässige Anzahl von Bytes im Textkörper einer ASP-Anforderung an. Wenn ein Content-Length-Header vorhanden ist und eine Datenmenge angibt, die den Wert von maxRequestEntityAllowed übersteigt, gibt IIS eine Fehlerantwort vom Typ HTTP 403 zurück.

  • Das processorThreadMax-Attribut gibt die maximale Anzahl von Arbeitsthreads an, die IIS pro Prozessor erstellen kann.

    Hinweis

    Diese Einstellung kann sich erheblich auf die Skalierbarkeit Ihrer Webanwendungen und auf die Leistung Ihres Servers im Allgemeinen auswirken. Da dieses Attribut die maximale Anzahl von ASP-Anforderungen definiert, die gleichzeitig ausgeführt werden können, sollte der Standardwert dieser Einstellung beibehalten werden, es sei denn, Ihre ASP-Anwendungen führen erweiterte Aufrufe für externe Komponenten durch.

  • Das queueConnectionTestTime-Attribut gibt an, wie viele Sekunden sich eine Anforderung in der Warteschlange befinden kann, bevor ASP überprüft, ob der Client noch verbunden ist. Befindet sich die Anforderung länger in der Warteschlange als durch die Anzahl von Sekunden des queueConnectionTestTime-Attributs angegeben, überprüft ASP, ob der Client noch verbunden ist, bevor die Anforderung ausgeführt wird. Ist der Client nicht mehr verbunden, wird die Anforderung nicht verarbeitet und aus der Warteschlange gelöscht.

    Hinweis

    In den meisten Fällen warten Benutzer nicht mehr als ein paar Sekunden auf die Verarbeitung von ASP-Seiten. Die maximale Wartezeit variiert zwar von Benutzer zu Benutzer, der allgemein akzeptierte Höchstwert liegt jedoch bei etwa zehn Sekunden. Sie können das queueConnectionTestTime-Attribut verwenden, um sicherzustellen, dass IIS keine Zeit für die Verarbeitung einer vom Benutzer abgebrochenen Anforderung aufwendet. Dieses Attribut trägt zu einer effizienten ASP-Verarbeitung bei – allerdings nur bis zu dem Punkt, an dem ASP mit der Verarbeitung des Skripts beginnt. Sobald das Skript ausgeführt wird, sollte Ihre Anwendung weiterhin bei Gelegenheit mithilfe der IsClientConnected-Methode des integrierten ASP-Response-Objekts überprüfen, ob der Client verbunden ist.

  • Das queueTimeout-Attribut gibt an, wie viele Sekunden sich eine ASP-Skriptanforderung in der Warteschlange befinden darf. Wenn Anforderungen aus der Warteschlange gepullt werden, werden sie überprüft, um zu ermitteln, ob sie abgelaufen sind (sprich: ob sie sich länger in der Warteschlange befunden haben als durch den Wert dieses Parameters angegeben). Abgelaufene Anforderungen werden abgelehnt, und es wird eine Meldung mit dem Hinweis ausgegeben, dass der Server ausgelastet ist.

  • Das requestQueueMax-Attribut gibt an, wie viele ASP-Anforderungen sich maximal gleichzeitig in der Warteschlange befinden dürfen. An jeden Clientbrowser, der versucht, ASP-Dateien anzufordern, wenn die Warteschlange voll ist, wird ein Fehler vom Typ HTTP 500: Server ausgelastet zurückgegeben.

  • Das scriptTimeout-Attribut gibt die Standardzeitspanne (in Sekunden) an, während der ASP-Seiten Skripts ausführen können, bevor das Skript beendet und ein Ereignis in das Windows-Ereignisprotokoll geschrieben wird. ASP-Skripts können diesen Wert mithilfe der ScriptTimeout-Eigenschaft des integrierten ASP-Session-Objekts außer Kraft setzen. Mithilfe der ScriptTimeout-Eigenschaft können Ihre ASP-Anwendungen einen höheren Skripttimeoutwert festlegen. Sie können diese Einstellung beispielsweise verwenden, um das Timeout anzupassen, sobald ein bestimmter Benutzer eine gültige Sitzung eingerichtet hat, indem er sich anmeldet oder ein Produkt bestellt.

Kompatibilität

Version Hinweise
IIS 10.0 Das <limits>-Element wurde in IIS 10.0 nicht geändert.
IIS 8.5 Das <limits>-Element wurde in IIS 8.5 nicht geändert.
IIS 8.0 Das <limits>-Element wurde in IIS 8.0 nicht geändert.
IIS 7.5 Das <limits>-Element wurde in IIS 7.5 nicht geändert.
IIS 7.0 Das <limits>-Element des <asp>-Elements wurde in IIS 7.0 eingeführt.
IIS 6.0 Das <limits>-Element ersetzt die folgenden Metabasiseigenschaften von IIS 6.0:
  • AspBufferingLimit
  • AspMaxRequestEntityAllowed
  • AspProcessorThreadMax
  • AspQueueConnectionTestTime
  • AspQueueTimeout
  • AspRequestQueueMax
  • AspScriptTimeout

Setup

Um ASP-Anwendungen auf Ihrem Webserver zu unterstützen und zu konfigurieren, müssen Sie das ASP-Modul installieren. Führen Sie die folgenden Schritte aus, um das ASP-Modul zu installieren:

Windows Server 2012 oder Windows Server 2012 R2

  1. Klicken Sie auf der Taskleiste auf Server-Manager.
  2. Klicken Sie im Server-Manager auf Verwalten und dann auf Rollen und Features hinzufügen. - Klicken Sie im Assistenten zum Hinzufügen von Rollen und Features auf Weiter. Wählen Sie den Installationstyp aus, und klicken Sie auf Weiter. Wählen Sie den Zielserver aus, und klicken Sie auf Weiter.
  3. Erweitern Sie auf der Seite Serverrollen die Option Webserver (IIS), erweitern Sie Webserver, erweitern Sie Anwendungsentwicklung, und wählen Sie dann ASP aus.
    Screenshot of A S P selected under Application development in an expanded Web Server (I I S) list.
  4. Wenn das Dialogfeld Features hinzufügen, die von ASP benötigt werden? angezeigt wird, klicken Sie auf Features hinzufügen. (Diese Seite wird nur angezeigt, wenn Sie den Rollendienst für ISAPI-Erweiterungen noch nicht auf Ihrem Server installiert haben.)
  5. Klicken Sie auf der Seite Serverrollen auf Weiter.
  6. Klicken Sie auf der Seite Features auswählen auf Weiter.
  7. Klicken Sie auf der Seite Installationsauswahl bestätigen auf Installieren.
  8. Klicken Sie auf der Seite Ergebnisse auf Schließen.

Windows 8 oder Windows 8.1

  1. Bewegen Sie auf dem Startbildschirm den Mauszeiger ganz nach links unten, klicken Sie mit der rechten Maustaste auf die Schaltfläche Start, und klicken Sie dann auf Systemsteuerung.

  2. Klicken Sie in der Systemsteuerung auf Programme und Features und dann auf Windows-Features aktivieren oder deaktivieren.

  3. Erweitern Sie Internetinformationsdienste > WWW-Dienste > Anwendungsentwicklungsfeatures, und wählen Sie anschließend ASP aus.
    Screenshot of A S P selected in a Windows 8 interface.

    Hinweis

    Die Rolle „ISAPI-Erweiterungen“ ist ausgewählt, wenn sie noch nicht installiert wurde.

  4. Klicken Sie auf OK.

  5. Klicken Sie auf Schließen.

Windows Server 2008 oder Windows Server 2008 R2

  1. Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltungstools, und klicken Sie dann auf Server-Manager.
  2. Erweitern Sie im Hierarchiebereich Server-Manager die Option Rollen, und klicken Sie dann auf Webserver (IIS).
  3. Scrollen Sie im Bereich Webserver (IIS) zum Abschnitt Rollendienste, und klicken Sie dann auf Rollendienste hinzufügen.
  4. Wählen Sie im Assistenten zum Hinzufügen von Rollendiensten auf der Seite Rollendienste auswählen die Option ASP aus.
    Screenshot of A S P selected under Application development in the Add Role Services Wizard.
  5. Wenn das Dialogfeld Rollendienste hinzufügen, die von ASP benötigt werden angezeigt wird, klicken Sie auf Erforderliche Rollendienste hinzufügen. (Diese Seite wird nur angezeigt, wenn Sie den Rollendienst für ISAPI-Erweiterungen noch nicht auf Ihrem Server installiert haben.)
    Screenshot of the Add Role Services dialog with the Add Required Role Services button emphasized.
  6. Klicken Sie auf der Seite Rollendienste auswählen auf Weiter.
  7. Klicken Sie auf der Seite Installationsauswahl bestätigen auf Installieren.
  8. Klicken Sie auf der Seite Ergebnisse auf Schließen.

Windows Vista oder Windows 7

  1. Klicken Sie auf der Taskleiste auf Start und dann auf Systemsteuerung.
  2. Klicken Sie in der Systemsteuerung auf Programme und Features und dann auf Windows-Features aktivieren oder deaktivieren.
  3. Erweitern Sie Internetinformationsdienste > WWW-Dienste > Anwendungsentwicklungsfeatures.
  4. Wählen Sie ASP aus, und klicken Sie anschließend auf OK.
    Screenshot of A S P selected in a Windows Vista or Windows 7 interface.

Gewusst wie

Konfigurieren der ASP-Cacheeinstellungen für einen Server

  1. Öffnen Sie Internetinformationsdienste-Manager (IIS-Manager):

    • Vorgehensweise unter Windows Server 2012 oder Windows Server 2012 R2:

      • Klicken Sie auf der Taskleiste auf Server-Manager > Tools > Internetinformationsdienste-Manager (IIS-Manager).
    • Vorgehensweise unter Windows 8 oder Windows 8.1:

      • Halten Sie die WINDOWS-TASTE gedrückt, drücken Sie den Buchstaben X, und klicken Sie dann auf Systemsteuerung.
      • Klicken Sie auf Verwaltung, und doppelklicken Sie dann auf Internetinformationsdienste-Manager (IIS-Manager).
    • Vorgehensweise unter Windows Server 2008 oder Windows Server 2008 R2:

      • Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltung, und klicken Sie dann auf Internetinformationsdienste-Manager (IIS-Manager).
    • Vorgehensweise unter Windows Vista oder Windows 7:

      • Klicken Sie auf der Taskleiste auf Start und dann auf Systemsteuerung.
      • Doppelklicken Sie auf Verwaltung, und doppelklicken Sie dann auf Internetinformationsdienste-Manager (IIS-Manager).
  2. Markieren Sie im Bereich Verbindungen den Namen Ihres Servers.

  3. Doppelklicken Sie im Bereich Start des Servers auf ASP.
    Screenshot of the SERVER Home pane with A S P selected.

  4. Erweitern Sie im Bereich ASP den Abschnitt Eigenschaften von Limits, konfigurieren Sie die gewünschten Einstellungen, und klicken Sie dann im Bereich Aktionen auf Anwenden.
    Screenshot of the A S P pane with the Limits Properties section expanded.

Konfiguration

Attribute

Attribut Beschreibung
bufferingLimit Optionales uint-Attribut.

Gibt die maximale Größe des ASP-Puffers in Bytes an. Bei aktivierter Antwortpufferung steuert dieses Attribut die maximale Anzahl von Bytes, die eine ASP-Seite in den Antwortpuffer schreiben kann, bevor dieser geleert wird. Dieser Wert ist eine ganze Zahl zwischen 0 und 2.147.483.647.

Der Standardwert ist 4194304.
maxRequestEntityAllowed Optionales uint-Attribut.

Gibt die maximal zulässige Anzahl von Bytes für den gesamten Textkörper einer ASP-Anforderung an. Dieser Wert ist eine ganze Zahl zwischen 0 und 2.147.483.647.

Der Standardwert ist 200000.
processorThreadMax Optionales uint-Attribut.

Gibt die maximale Anzahl von Arbeitsthreads pro Prozessor an, die ASP erstellen kann.

Der Standardwert ist 25.
queueConnectionTestTime Optionales timeSpan-Attribut.

Gibt das Zeitintervall (hh:mm:ss) an, nach dem ASP überprüft, ob der Client noch verbunden ist, bevor eine Anforderung ausgeführt wird. Ist der Client nicht mehr verbunden, wird die Anforderung nicht verarbeitet und aus der Warteschlange gelöscht.

Der Standardwert ist 00:00:03.
queueTimeout Optionales timeSpan-Attribut.

Gibt den maximalen Zeitraum (hh:mm:ss) an, für den sich eine ASP-Anforderung in der Anforderungswarteschlange befinden darf.

Der Standardwert ist 00:00:00.
requestQueueMax Optionales uint-Attribut.

Gibt an, wie viele ASP-Anforderungen sich maximal gleichzeitig in der Anforderungswarteschlange befinden dürfen.

Der Standardwert ist 3000.
scriptTimeout Optionales timeSpan-Attribut.

Gibt den maximalen Zeitraum (hh:mm:ss) an, während dem ASP-Seiten Skripts ausführen können, bevor das Skript beendet und ein Ereignis in das Windows-Ereignisprotokoll geschrieben wird.

Der Standardwert ist 00:01:30.

Untergeordnete Elemente

Keine.

Konfigurationsbeispiel

Im folgenden Konfigurationsbeispiel wird das ASP-Skripttimeout auf zwei Minuten festgelegt, der Zeitraum, nach dem ASP überprüft, ob der Client noch verbunden ist, bevor eine Anforderung ausgeführt wird, wird auf fünf Sekunden festgelegt, und die maximal zulässige Anzahl gleichzeitiger ASP-Anforderungen in der Anforderungswarteschlange wird auf „1.000“ festgelegt.

<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>

Beispielcode

In den folgenden Codebeispielen wird das ASP-Skripttimeout auf zwei Minuten festgelegt, der Zeitraum, nach dem ASP überprüft, ob der Client noch verbunden ist, bevor eine Anforderung ausgeführt wird, wird auf fünf Sekunden festgelegt, und die maximal zulässige Anzahl gleichzeitiger ASP-Anforderungen in der Anforderungswarteschlange wird auf „1.000“ festgelegt.

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

Hinweis

Legen Sie den commit-Parameter auf apphost fest, wenn Sie „AppCmd.exe“ verwenden, um diese Einstellungen zu konfigurieren. Dadurch werden die Konfigurationseinstellungen auf den entsprechenden Speicherortabschnitt in der Datei „ApplicationHost.config“ festgelegt.

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()