Freigeben über


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:
  • AspAppServiceFlags
  • AspExecuteInMTA
  • AspPartitionID
  • AspSxsName
  • AspTrackThreadingModel

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

    Screenshot of Web Server and Application Development pane expanded with A S P selected.

    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

  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 shows World Wide Web Services and Application Development Features node expanded with A S P selected.

    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 Select Role Services page showing Application Development node expanded and A S P selected.
  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 Add role services required by A S P dialog box with Web Server I I S selected.
  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 Internet Information Services and Application Development Features pane expanded with A S P selected.

Gewusst wie

Konfigurieren von ASP-Sitzungszustandseinstellungen für eine Website oder Anwendung

  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. Erweitern Sie im Bereich Verbindungen den Servernamen, erweitern Sie Sites, und navigieren Sie dann zu der Website oder Webanwendung, die Sie konfigurieren möchten.

  3. Doppelklicken Sie im Bereich Start der Site oder Anwendung auf ASP.
    Screenshot of Home pane showing A S P selected.

  4. Erweitern Sie im Bereich ASP den Abschnitt Eigenschaften von Com Plus, und konfigurieren Sie die gewünschten Einstellungen.
    Screenshot of A S P pane displaying Com Plus Properties section highlighted.

  5. 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.
Wert Beschreibung
None Gibt an, dass keine Flags festgelegt wurden.

Der numerische Wert ist 0.
EnableTracker Durch Festlegen dieses Flags wird die COM+-Protokollierung aktiviert, die Administratoren oder Entwicklern das Debuggen von ASP-Anwendungen ermöglicht.

Der numerische Wert ist 1.
EnableSxS Durch Festlegen dieses Flags können parallele COM+-Assemblys verwendet werden, damit ASP-Anwendungen angeben können, welche Version einer System-DLL oder einer klassischen COM-Komponente verwendet werden soll – z. B. WinHTTP 5.1, die Shell Common Controls-Version 6.0 (Comctl32.dll), die GDI Plus-Version 1.0 (GDIplus.dll) und Visual C++-Laufzeitbibliotheken der Version 6.0. Wenn dieses Flag festgelegt wird, muss auch ein Wert für das sxsName-Attribut angegeben werden.

Der numerische Wert ist 2.
UsePartition Durch Festlegen dieses Flags wird die COM+-Partitionierung aktiviert, die zum Isolieren von Webanwendungen in ihren eigenen COM+-Partitionen verwendet werden kann. COM+-Partitionen können unterschiedliche Versionen Ihrer eigenen benutzerdefinierten COM-Komponenten enthalten. Wenn dieses Flag festgelegt wird, muss auch ein Wert für das partitionId-Attribut angegeben werden.

Der numerische Wert ist 4.
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()