Empfohlen: ASP -Fehlersammlung Die ASP -Fehlersammlung ist für Anfänger hilfreich, und vielleicht vergessen Experten sie. ASP Fehlersammlung Microsoft VBScript Sprache*Fehler (0x800a03e9)-> Unzureichende Speicher Microsoft VBScript-Sprache*Fehler (0x800a03ea)-> Sprache*Fehler Microsoft VBScript-Sprache*Fehler (0x800a03ea)-> Sprache*Fehler Microsoft VBSCript Sprache*x800a03ea)-> Sprache*Fehler Microsoft VBS-Sprache*x800a03ea)
ASP -Anforderungen werden von WAM -Objekten initialisiert. Das WAM-Objekt sendet es dann an ASP-Runtime. ASP-Runtime reagiert darauf, indem Sie ein internes Seitenobjekt erstellen.Ein WAM -Objekt ist ein kostenloses Thread -Objekt. Wenn es eine ISAPI-Erweiterung wie ASP.Dll aufruft, wird Threads des MTA-Modells verwendet, das vom von IIS-Runtime verwalteten Thread-Pool zugewiesen wurde.
Ein schwieriges Problem bei der Erstellung einer ISAPI -Erweiterung ist, wie Sie mit dem durch diesen MTA -Thread -Pool verursachten Thread -Parallelität und Synchronisation umgehen können. ASP-Runtime vereinfacht das Problem, indem jede ASP-Anforderung auf eine einzelne Thread-Einheit (STA) umgestellt wird, bevor das ASP-Skript ausgeführt wird. ASP-Runtime verwaltet einen eigenständigen STA-Helfer-Thread-Pool (im Hintergrund tut ASP dies tatsächlich mit einem COM-Thread-Pool). ASP -Designer haben dieses Thread -Pooling -Schema erstellt, um ein optimiertes Gleichgewicht zwischen Parallelität und Ressourcenauslastung bereitzustellen und gleichzeitig die Notwendigkeit von Programmierern zu beseitigen, um Synchronisation zu erreichen.
Wie wechselt ASP-Runtime jede Anforderung von einem MTA-Thread zu einem STA-Thread? Der ASP-Runtime-Planungsmechanismus bringt jede Anfrage in eine zentrale Anfrage-Warteschlange. Die STA-Threads im Thread-Pool, der vom ASP verwaltet wird, überwachen die Warteschlange und verarbeiten die Anforderungen zuerst in die erste Weise. Beachten Sie, dass sich die Größe dieses Threadpools dynamisch ändert. ASP-Runtime erzeugt zusätzliche Threads während der Spitzenkommunikation und fördert Threads, wenn weniger Kommunikation vorliegt.
Das Umschalten auf STA -Thread löst effektiv das Problem der Parallelität, dies hat jedoch auch einen signifikanten Einfluss auf die Leistung. Die in einer separate MTA -Thread -Geschwader verarbeitete ISAPI -erweiterte DLL bietet schnellere Reaktionszeiten.
IIS bietet eine Methode, um die maximale Größe des STA -Threadpools festzulegen und die Warteschlange zu fordern. Die Größe des Fadenpools wird durch den Aspprocessortheadmax -Primärschlüssel in der IIS -Metadatabase gesteuert. Die Standardeinstellung für diesen Primärschlüssel beträgt 25 pro Prozess pro Prozessor (Kommentar: Es ist am besten, die relevante Dokumentation von Microsoft zu finden, um diese Zahl zu beweisen. Einige Leute sagen, dass diese Zahl 10 pro CPU beträgt). Das heißt, in einem Vierprozessor-Computer kann jeder Prozess, der ASP verarbeitet, bis zu 100 Hilfsfäden aufweisen. Wenn Probleme im Zusammenhang mit Tuning -Threadpools berücksichtigt wurden, sollte die Änderung dieses Schlüsselwerts vermieden werden. Beachten Sie, dass Sie den Internet Server Manager nicht verwenden können, um diese Einstellung zu ändern. Es muss mit Verwaltungsskripten oder VB -Anwendungen geändert werden.
IIS legt eine maximale Kapazität für die ASP -Anforderungswarteschlange fest. Standardmäßig ermöglicht ASP-Runtime, dass eine Warteschlange bis zu 3000 Anfragen aufbewahrt (ein anderer Microsoft-Dokument besagt, dass diese Warteschlange nur 500 Anfragen halten kann). Sobald es überschritten wurde, wird die spätere Eintrags -ASP -Anforderung abgelehnt und die Fehlermeldung als Server zurückgegeben.
Der Primärschlüssel und der ASPPROCESSORTREADMAX -Primärschlüssel und der Primärschlüssel von Asprequestqueuemax können mit IIS -Management -Objekten und ADSI programmiert werden. In einem Standard -EXE -Projekt finden Sie beispielsweise die aktive DS -Typbibliothek und schreiben Sie den folgenden Code:
Dimm Mywebserver als Handlungssachen.IADs
Setzen Sie MyWebserver = GetOject (iis: // localhost/w3svc)
MyWebserver.put Aspprocessortheadmax, 30
MyWebserver.put Asprequestqueuemax, 1500
MyWebserver.setInfo
Hier finden Sie eine kurze Zusammenfassung, wie der ASP -Thread -Pool in IIS funktioniert, der standardmäßig auf einem einzigen Prozessorcomputer installiert ist. Dieser Thread -Pool verfügt über 25 STA -Helfer -Threads für jeden Prozessor. Wenn eine Anfrage eintrifft, wird sie in die Anfrage -Warteschlange gestellt. ASP-Runtime plant einen Leerlauf-STA-Thread aus dem Thread-Pool, wenn einer verfügbar ist (beachten Sie, dass dieses Schema jedem Thread im Thread-Pool die Anforderung verarbeiten kann). Wenn es keine kostenlosen Helfer -Threads gibt, wird die Anforderung zur Warteschlange hinzugefügt. Solange die Warteschlange nicht die maximale Standardkapazität erreicht, werden alle Anforderungen bearbeitet.
Programmieren verteilte Anwendung mit Visual Basic 6.0 aus Ted Pattison
Teilen: Technische Funktionen und Nutzungsmethoden von ASP Vor einigen Jahren war das CGI -Modell (Common Ga Teway Interface) der einzige Kanal der Branche für die dynamische Homepage -Veröffentlichung. Obwohl sich die nachfolgenden technischen Lösungen wie ISAPI, NSAPI und JDBC im Vergleich zu CGI verbessert haben, werden diese Lösungen immer noch aus der technischen Realität des Enterprise Network (Intranet) gemessen.