Partager via


ASP COM Plus <comPlus>

L’élément <comPlus> de l’élément <asp> configure les paramètres COM+ suivants pour les pages ASP (Active Server Pages) dans Internet Information Services (IIS) 7 :

  • La propriété appServiceFlags contient les indicateurs qui doivent être définis pour activer les services COM+ sur vos applications IIS 7. Une fois que vous avez activé les indicateurs, vous devrez peut-être également définir d’autres propriétés. Pour plus d’informations, consultez la section Configuration plus loin dans cet article.

  • L’attribut executeInMta spécifie si ASP peut exécuter des scripts dans un multithread cloisonné. ASP est capable d’exécuter tous ses threads dans un multithread cloisonné (MTA). Si vos composants COM sont principalement à threads libres ou plurithreads, l’exécution des threads ASP en tant que MTA peut améliorer considérablement les performances. Par défaut, la propriété executeInMta a la valeur false, ce qui signifie que ASP ne s’exécute pas dans MTA. Définissez cette propriété sur true au niveau de l’application pour permettre à ASP de s’exécuter dans MTA.

  • L’attribut partitionId spécifie l’identificateur global unique (GUID) d’une partition COM+, qui est utilisé pour isoler les applications web dans leurs propres partitions COM+. Les partitions COM+ contiennent différentes versions de vos propres composants COM personnalisés.

    Remarque

    Si vous spécifiez une valeur pour l’attribut partitionId, vous devez également définir l’indicateur UsePartition de l’attribut appServiceFlags.

  • L’attribut sxsName spécifie le nom d’une application COM+ et active les assemblys côte à côte (SxS). Les assemblys côte à côte (SxS) permettent aux applications ASP de spécifier la version d’une DLL système prise en charge par SxS à utiliser, comme MSVCRT, MSXML, COMCTL, GDIPLUS, etc.

    Remarque

    Si vous spécifiez une valeur pour l’attribut sxsName, vous devez également définir l’indicateur EnableSxS de l’attribut appServiceFlags.

  • L’attribut trackThreadingModel spécifie si IIS 7 vérifie si le modèle de thread de tous les composants (objets COM) créés par votre application. Le paramètre privilégiée de cet attribut de métabase est false. Si trackThreadingModel a la valeur true, les conditions suivantes s’appliquent :

    • ASP utilise des ressources système pour suivre le modèle de thread, ce qui réduit les performances de votre application ASP.

    • Les objets créés dans votre application ASP en dehors de la méthode OnStartPage ou OnEndPage sont publiés plus tôt que prévu, ce qui entraîne une dégradation de la scalabilité de votre application et peut empêcher votre composant d’écrire dans la réponse dans la méthode de destructeur d’objet.

      Si l’attribut trackThreadingModel a la valeur falseet que vous donnez la portée de l’application aux composants que vous créez, ces composants doivent agréger le marshaleur à threads libres. Si vous n’agrègez pas le marshaleur à threads libres, ASP génère une erreur lorsque vous essayez de créer une instance du composant. Pour plus d’informations, consultez Sélection d’un modèle de thread pour les composants dans IIS.

Compatibilité

Version Notes
IIS 10.0 L’élément <comPlus> n’a pas été modifié dans IIS 10.0.
IIS 8.5 L’élément <comPlus> n’a pas été modifié dans IIS 8.5.
IIS 8.0 L’élément <comPlus> n’a pas été modifié dans IIS 8.0.
IIS 7.5 L’élément <comPlus> n’a pas été modifié dans IIS 7.5.
IIS 7.0 L’élément <comPlus> de l’élément <asp> a été introduit dans IIS 7.0.
IIS 6.0 L’élément <comPlus> remplace les propriétés de métabase IIS 6.0 suivantes :
  • AspAppServiceFlags
  • AspExecuteInMTA
  • AspPartitionID
  • AspSxsName
  • AspTrackThreadingModel

Programme d’installation

Pour prendre en charge et configurer des applications ASP sur votre serveur web, vous devez installer le module ASP. Pour installer le module ASP, observez les étapes suivantes.

Windows Server 2012 ou Windows Server 2012 R2

  1. Dans la barre des tâches, cliquez sur Gestionnaire de serveur. Dans Gestionnaire de serveur, cliquez sur le menu Gérer, puis sur Ajouter des rôles et des fonctionnalités. Dans l’Assistant Ajout de rôles et de fonctionnalités, cliquez sur Suivant. Sélectionnez le type d’installation, puis cliquez sur Suivant. Sélectionnez le serveur de destination, puis cliquez sur Suivant. Dans la page Rôles de serveur, développez Serveur web (IIS), Serveur web, Développement d’applications, puis sélectionnez ASP.

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

    Si la boîte de dialogue Ajouter des fonctionnalités requises par ASP ? s’affiche, cliquez sur Ajouter des fonctionnalités. (Cette page s’affiche uniquement si vous n’avez pas déjà installé le service de rôle Extensions ISAPI sur votre serveur.) Dans la page Rôles de serveur, cliquez sur Suivant. - Dans la page Sélectionner les fonctionnalités, cliquez sur Suivant. - Dans la page Confirmer les sélections d’installation, cliquez sur Installer. - Dans la page Résultats, cliquez sur Fermer.

Windows 8 ou Windows 8.1

  1. Dans l’écran d’accueil, déplacez le pointeur jusqu’au coin inférieur gauche, cliquez avec le bouton droit sur le bouton Démarrer, puis cliquez sur Panneau de configuration.

  2. Dans Panneau de configuration, cliquez sur Programmes et fonctionnalités, puis sur Activer ou désactiver des fonctionnalités Windows.

  3. Développez Internet Information Services, Services World Wide Web, Fonctionnalités de développement d’applications, puis sélectionnez ASP.

    Screenshot shows World Wide Web Services and Application Development Features node expanded with A S P selected.

    Remarque

    Le rôle Extensions ISAPI est sélectionnée si elle n’a pas déjà été installée.

  4. Cliquez sur OK.

  5. Cliquez sur Fermer.

Windows Server 2008 ou Windows Server 2008 R2

  1. Dans la barre des tâches, cliquez sur Démarrer, pointez sur Outils d’administration, puis cliquez sur Gestionnaire de serveur.
  2. Dans le volet hiérarchie du Gestionnaire de serveur, développez Rôles, puis cliquez sur Serveur web (IIS).
  3. Dans le volet Serveur web (IIS), faites défiler jusqu’à la section Services de rôle, puis cliquez sur Ajouter des services de rôle.
  4. Dans la page Sélectionner des services de rôle de l’Assistant Ajout de services de rôle, sélectionnez ASP.
    Screenshot of Select Role Services page showing Application Development node expanded and A S P selected.
  5. Si la boîte de dialogue Ajouter des services de rôle requis par ASP s’affiche, cliquez sur Ajouter les services de rôle requis. (Cette page s’affiche uniquement si vous n’avez pas déjà installé le service de rôle Extensions ISAPI sur votre serveur.)
    Screenshot of Add role services required by A S P dialog box with Web Server I I S selected.
  6. Dans la page Sélectionner les services de rôle, cliquez sur Suivant.
  7. Dans la page Confirmer les sélections pour l'installation, cliquez sur Installer.
  8. Dans la page Résultats , cliquez sur Fermer.

Windows Vista ou Windows 7

  1. Dans la barre des tâches, cliquez sur Démarrer, puis sur Panneau de configuration.

  2. Dans Panneau de configuration, cliquez sur Programmes et fonctionnalités, puis sur Activer ou désactiver des fonctionnalités Windows.

  3. Développez Internet Information Services, Services World Wide Web, puis Fonctionnalités de développement d’applications.

  4. Sélectionnez ASP, puis cliquez sur OK.

    Screenshot of Internet Information Services and Application Development Features pane expanded with A S P selected.

Procédure

Comment configurer des paramètres d’état de session ASP pour un site ou une application

  1. Ouvrez le Gestionnaire des services Internet (IIS) :

    • Si vous utilisez Windows Server 2012 ou Windows Server 2012 R2 :

      • Dans la barre des tâches, cliquez sur Gestionnaire de serveur, cliquez sur Outils, puis sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows 8 ou Windows 8.1 :

      • Maintenez la touche Windows enfoncée, appuyez sur la lettre X, puis cliquez sur Panneau de configuration.
      • Cliquez sur Outils d’administration, puis double-cliquez sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows Server 2008 ou Windows Server 2008 R2 :

      • Cliquez sur Démarrer, placez le curseur sur Outils d’administration, puis cliquez sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows Vista ou Windows 7 :

      • Dans la barre des tâches, cliquez sur Démarrer, puis sur Panneau de configuration.
      • Double-cliquez sur Outils d’administration, puis double-cliquez sur Gestionnaire Internet Information Services (IIS).
  2. Dans le volet Connexions , développez le nom du serveur, développez Sites, puis accédez au site Web ou à l’application web que vous souhaitez configurer.

  3. Dans le volet Accueil du site ou de l’application, double-cliquez sur ASP.
    Screenshot of Home pane showing A S P selected.

  4. Dans le volet ASP, développez la section Propriétés COM Plus et configurez vos paramètres souhaités.
    Screenshot of A S P pane displaying Com Plus Properties section highlighted.

  5. Cliquez sur Appliquer dans le volet Actions.

Configuration

Attributs

Attribut Description
appServiceFlags Attribut flags facultatif.

Contient les indicateurs qui doivent être définis pour activer les services COM+ sur vos applications IIS.

L’attribut appServiceFlags peut être l’une des valeurs possibles suivantes. La valeur par défaut est None.
Valeur Description
None Spécifie qu’aucun indicateur n’est défini.

La valeur numérique est 0.
EnableTracker La définition de cet indicateur active le suivi COM+, ce qui permet aux administrateurs ou aux développeurs de déboguer des applications ASP.

La valeur numérique est 1.
EnableSxS La définition de cet indicateur active les assemblys côte à côte COM+, qui permettent aux applications ASP de spécifier la version d’un DLL système ou d’un composant COM classique à utiliser, comme WinHTTP 5.1, Shell Common Controls version 6.0 (Comctl32.dll), GDI Plus version 1.0 (GDIplus.dll) et Visual C++ Run-time Libraries version 6.0. Si cet indicateur est défini, vous devez également spécifier une valeur pour l’attribut sxsName.

La valeur numérique est 2.
UsePartition La définition de cet indicateur active le partitionnement COM+, qui peut être utilisé pour isoler les applications web dans leurs propres partitions COM+. Les partitions COM+ peuvent contenir différentes versions de vos propres composants COM personnalisés. Si cet indicateur est défini, vous devez également spécifier une valeur pour l’attribut partitionId.

La valeur numérique est 4.
executeInMta Attribut booléen facultatif.

Spécifie si ASP s’exécute dans un environnement multithread.

La valeur par défaut est false.
partitionId Attribut de chaîne facultatif.

Spécifie l’identificateur global unique (GUID) de la partition COM+.

Remarque : cet attribut est requis lorsque l’attribut appServiceFlags est défini sur UsePartition.

La valeur par défaut est 00000000-0000-0000-0000-000000000000.
sxsName Attribut de chaîne facultatif.

Remarque : cet attribut est requis lorsque l’attribut appServiceFlags est défini sur EnableSxS.

Spécifie le nom de l’application COM+.
trackThreadingModel Attribut booléen facultatif.

Spécifie si la vérification du modèle de thread est activée. La valeur true signifie que IIS respecte le modèle de thread des composants créés par une application.

La valeur par défaut est false.

Éléments enfants

Aucune.

Exemple Configuration

L’exemple de configuration suivant montre comment configurer IIS pour activer la vérification des modèles de thread et configurer ASP pour qu’il s’exécute dans un compartiment multithread.

<configuration>
   <system.webServer>
      <asp>
         <comPlus trackThreadingModel="true" executeInMta="true" />
      </asp>
   </system.webServer>
</configuration>

Exemple de code

Les exemples de code suivants montrent comment configurer IIS pour activer la vérification des modèles de thread et configurer ASP pour qu’il s’exécute dans un compartiment multithread.

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

Remarque

Vous devez veiller à définir le paramètre commit sur apphost quand vous utilisez AppCmd.exe pour configurer ces paramètres. Cela valide les paramètres de configuration dans la section d’emplacement appropriée dans le fichier 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", "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()