ASP COM+ <comPlus>
Das <comPlus>
-Element des <asp>
-Elements konfiguriert die folgenden COM+-Einstellungen für Active Server Pages (ASP) in Internetinformationsdienste 7 (Internet Information Services, IIS):
Die appServiceFlags-Eigenschaft enthält die Flags, die festgelegt werden müssen, um COM+-Dienste in Ihren IIS 7-Anwendungen zu aktivieren. Nach Aktivierung der Flags müssen möglicherweise noch andere Eigenschaften festgelegt werden. Weitere Informationen finden Sie im Abschnitt Konfiguration weiter unten in diesem Artikel.
Das executeInMta-Attribut gibt an, ob ASP Skripts in einem Multithread-Apartment ausführen kann. ASP kann alle seine Threads in einem Multithread-Apartment (MTA) ausführen. Wenn Ihre COM-Komponenten in erster Linie das Threadingmodell „Free“ oder das Threadingmodell „Both“ verwenden, kann die Ausführung von ASP-Threads als MTA die Leistung erheblich verbessern. Standardmäßig ist die executeInMta-Eigenschaft auf false festgelegt, was bedeutet, dass ASP nicht in MTA ausgeführt wird. Legen Sie diese Eigenschaft auf der Anwendungsebene auf true fest, damit ASP in MTA ausgeführt werden kann.
Das partitionId-Attribut gibt die GUID (Globally Unique Identifier) einer COM+-Partition an. Sie dient dazu, Webanwendungen in ihren eigenen COM+-Partitionen zu isolieren. COM+-Partitionen enthalten unterschiedliche Versionen Ihrer eigenen benutzerdefinierten COM-Komponenten.
Hinweis
Wenn Sie einen Wert für das partitionId-Attribut angeben, müssen Sie auch das UsePartition-Flag des appServiceFlags-Attributs festlegen.
Das sxsName-Attribut gibt den Namen einer COM+-Anwendung an und aktiviert parallele Assemblys (Side-by-Side-Assemblys, SxS-Assemblys). SxS-Assemblys ermöglichen ASP-Anwendungen die Angabe der zu verwendenden Version einer SxS-unterstützten System-DLL (z. B. MSVCRT, MSXML, COMCTL, GDIPLUS usw.).
Hinweis
Wenn Sie einen Wert für das sxsName-Attribut angeben, müssen Sie auch das EnableSxS-Flag des appServiceFlags-Attributs festlegen.
Das trackThreadingModel-Attribut gibt an, ob IIS 7 das Threadingmodell von Komponenten (COM-Objekten) überprüft, die Ihre Anwendung erstellt. Die bevorzugte Einstellung dieses Metabasisattributs ist „false“. Wenn trackThreadingModel auf „true“ festgelegt ist, gelten folgende Bedingungen:
ASP verwendet Systemressourcen, um das Threadingmodell nachzuverfolgen, was die Leistung Ihrer ASP-Anwendung verringert.
Objekte, die in Ihrer ASP-Anwendung außerhalb der OnStartPage- oder OnEndPage-Methode erstellt werden, werden früher als erwartet veröffentlicht, was die Skalierbarkeit Ihrer Anwendung beeinträchtigt und möglicherweise dafür sorgt, dass Ihre Komponente nicht in die Antwort in der Objektdestruktormethode schreiben kann.
Wenn das trackThreadingModel-Attribut auf falsefestgelegt ist und Sie von Ihnen erstellten Komponenten einen Anwendungsbereich zuweisen, müssen diese Komponenten den freethreaded Marshaller aggregieren. Wenn Sie den freethreaded Marshaller nicht aggregieren, generiert ASP einen Fehler, wenn Sie versuchen, eine Instanz der Komponente zu erstellen. Weitere Informationen finden Sie unter Auswählen eines Threadingmodells für Komponenten in IIS.
Kompatibilität
Version | Hinweise |
---|---|
IIS 10.0 | Das <comPlus> -Element wurde in IIS 10.0 nicht geändert. |
IIS 8.5 | Das <comPlus> -Element wurde in IIS 8.5 nicht geändert. |
IIS 8.0 | Das <comPlus> -Element wurde in IIS 8.0 nicht geändert. |
IIS 7.5 | Das <comPlus> -Element wurde in IIS 7.5 nicht geändert. |
IIS 7.0 | Das <comPlus> -Element des <asp> -Elements wurde in IIS 7.0 eingeführt. |
IIS 6.0 | Das <comPlus> -Element ersetzt die folgenden Metabasiseigenschaften von IIS 6.0:
|
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
Klicken Sie auf der Taskleiste auf Server-Manager. - 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. - Erweitern Sie auf der Seite Serverrollen die Option Webserver (IIS), erweitern Sie Webserver, erweitern Sie Anwendungsentwicklung, und wählen Sie dann ASP aus.
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.) - Klicken Sie auf der Seite Serverrollen auf Weiter. - Klicken Sie auf der Seite Features auswählen auf Weiter. - Klicken Sie auf der Seite Installationsauswahl bestätigen auf Installieren. - Klicken Sie auf der Seite Ergebnisse auf Schließen.
Windows 8 oder Windows 8.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.
Klicken Sie in der Systemsteuerung auf Programme und Features und dann auf Windows-Features aktivieren oder deaktivieren.
Erweitern Sie Internetinformationsdienste > WWW-Dienste > Anwendungsentwicklungsfeatures, und wählen Sie anschließend ASP aus.
Hinweis
Die Rolle „ISAPI-Erweiterungen“ ist ausgewählt, wenn sie noch nicht installiert wurde.
Klicken Sie auf OK.
Klicken Sie auf Schließen.
Windows Server 2008 oder Windows Server 2008 R2
- Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltungstools, und klicken Sie dann auf Server-Manager.
- Erweitern Sie im Hierarchiebereich Server-Manager die Option Rollen, und klicken Sie dann auf Webserver (IIS).
- Scrollen Sie im Bereich Webserver (IIS) zum Abschnitt Rollendienste, und klicken Sie dann auf Rollendienste hinzufügen.
- Wählen Sie im Assistenten zum Hinzufügen von Rollendiensten auf der Seite Rollendienste auswählen die Option ASP aus.
- 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.)
- Klicken Sie auf der Seite Rollendienste auswählen auf Weiter.
- Klicken Sie auf der Seite Installationsauswahl bestätigen auf Installieren.
- Klicken Sie auf der Seite Ergebnisse auf Schließen.
Windows Vista oder Windows 7
Klicken Sie auf der Taskleiste auf Start und dann auf Systemsteuerung.
Klicken Sie in der Systemsteuerung auf Programme und Features und dann auf Windows-Features aktivieren oder deaktivieren.
Erweitern Sie Internetinformationsdienste > WWW-Dienste > Anwendungsentwicklungsfeatures.
Wählen Sie ASP aus, und klicken Sie anschließend auf OK.
Gewusst wie
Konfigurieren von ASP-Sitzungszustandseinstellungen für eine Website oder Anwendung
Ö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).
Erweitern Sie im Bereich Verbindungen den Servernamen, erweitern Sie Sites, und navigieren Sie dann zu der Website oder Webanwendung, die Sie konfigurieren möchten.
Doppelklicken Sie im Bereich Start der Site oder Anwendung auf ASP.
Erweitern Sie im Bereich ASP den Abschnitt Eigenschaften von Com Plus, und konfigurieren Sie die gewünschten Einstellungen.
Klicken Sie im Bereich Aktionen auf Übernehmen.
Konfiguration
Attribute
Attribut | Beschreibung | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
appServiceFlags |
Optionales flags-Attribut. Enthält die Flags, die festgelegt werden müssen, um COM+-Dienste in Ihren IIS-Anwendungen zu aktivieren. Das appServiceFlags-Attribut kann einen der folgenden Werte haben. Der Standardwert ist None .
|
||||||||||
executeInMta |
Optionales boolesches Attribut. Gibt an, ob ASP in einer Multithreadumgebung ausgeführt wird. Der Standardwert ist false . |
||||||||||
partitionId |
Optionales Zeichenfolgeattribut. Gibt die GUID (Globally Unique Identifier) der COM+-Partition an. Hinweis: Dieses Attribut ist erforderlich, wenn das appServiceFlags-Attribut auf UsePartition festgelegt ist. Der Standardwert ist 00000000-0000-0000-0000-000000000000 . |
||||||||||
sxsName |
Optionales Zeichenfolgeattribut. Hinweis: Dieses Attribut ist erforderlich, wenn das appServiceFlags-Attribut auf EnableSxS festgelegt ist. Gibt den Namen der COM+-Anwendung an. |
||||||||||
trackThreadingModel |
Optionales boolesches Attribut. Gibt an, ob die Threadmodellüberprüfung aktiviert ist. true bedeutet, dass IIS das Threadingmodell der von einer Anwendung erstellten Komponenten berücksichtigt. Der Standardwert ist false . |
Untergeordnete Elemente
Keine.
Konfigurationsbeispiel
Im folgenden Konfigurationsbeispiel wird gezeigt, wie Sie IIS konfigurieren, um die Threadmodellüberprüfung zu aktivieren, und wie Sie ASP für die Ausführung in einem Multithread-Apartment konfigurieren.
<configuration>
<system.webServer>
<asp>
<comPlus trackThreadingModel="true" executeInMta="true" />
</asp>
</system.webServer>
</configuration>
Beispielcode
In den folgenden Codebeispielen wird gezeigt, wie Sie IIS konfigurieren, um die Threadmodellüberprüfung zu aktivieren, und wie Sie ASP für die Ausführung in einem Multithread-Apartment konfigurieren.
AppCmd.exe
appcmd.exe set config "Default Web Site" -section:system.webServer/asp /comPlus.trackThreadingModel:"True" /commit:apphost
appcmd.exe set config "Default Web Site" -section:system.webServer/asp /comPlus.executeInMta:"True" /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", "Default Web Site");
ConfigurationElement comPlusElement = aspSection.GetChildElement("comPlus");
comPlusElement["trackThreadingModel"] = true;
comPlusElement["executeInMta"] = true;
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", "Default Web Site")
Dim comPlusElement As ConfigurationElement = aspSection.GetChildElement("comPlus")
comPlusElement("trackThreadingModel") = True
comPlusElement("executeInMta") = True
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/Default Web Site");
var comPlusElement = aspSection.ChildElements.Item("comPlus");
comPlusElement.Properties.Item("trackThreadingModel").Value = true;
comPlusElement.Properties.Item("executeInMta").Value = true;
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/Default Web Site")
Set comPlusElement = aspSection.ChildElements.Item("comPlus")
comPlusElement.Properties.Item("trackThreadingModel").Value = True
comPlusElement.Properties.Item("executeInMta").Value = True
adminManager.CommitChanges()