Fonctionnalité Démarrage automatique

La fonctionnalité démarrage automatique de AppFabric est basée sur la fonctionnalité démarrage automatique des services Internet (IIS) 7.5 incluse dans Windows 7 et Windows Server 2008 R2. Dans IIS, vous pouvez configurer le démarrage automatique d'un pool d'applications, et d'une partie ou de l'ensemble des applications associées, lors du démarrage du service IIS. La fonctionnalité de démarrage automatique de AppFabric étend cette fonctionnalité pour vous permettre de configurer le démarrage automatique d'une partie ou de l'ensemble des services d'une application lors du démarrage de l'application.

Avantages de la fonctionnalité de démarrage automatique

Lorsque vous activez la fonctionnalité démarrage automatique pour un service, le service est opérationnel dès que l'application auquel il appartient est démarrée et avant que le service ne reçoive le premier message WCF du client. Le service est ainsi en mesure de traiter le premier message rapidement puisqu'il est déjà initialisé. Par exemple, supposons qu'un service ait besoin de se connecter à une base de données pour lire des centaines de lignes de données avant de renseigner une structure de données de cache .NET Framework lors de sa création. Le traitement de l'initialisation prend un long moment avant que le service ne soit prêt à commencer l'opération réelle. Si vous utilisez la fonctionnalité démarrage automatique dans ce cas, le service est initialisé avant de recevoir le premier appel.

Le composant HTTP.SYS d'IIS traite les demandes HTTP, tandis que le service Service d’activation des processus Windows (WAS) traite les demandes TCP, des canaux nommés et MSMQ à l'aide d'adaptateurs d'écouteur WCF personnalisés inclus dans IIS. L'adaptateur d'écouteur établit la communication entre le service WAS et un service utilisant des protocoles non HTTP. Pour prendre en charge le traitement des messages reçus via un autre protocole, vous devez développer des adaptateurs d'écouteur personnalisés et d'autres modules de prise en charge, ce qui peut s'avérer complexe. Pour plus d'informations sur les adaptateurs d'écouteur, consultez la page Listener Adapters (https://go.microsoft.com/fwlink/?LinkId=160359) (en anglais). La prise en charge de la fonctionnalité démarrage automatique vous permet de déployer des applications prenant en charge un protocole quelconque vers IIS. Si vous activez la fonctionnalité démarrage automatique pour ces applications déployées, le service WAS les active et les garde actives dans le processus de travail.

Scénarios de démarrage automatique

Les services qui utilisent la fonctionnalité de démarrage automatique prennent en charge les scénarios suivants :

  • L'ordinateur sur lequel une application est déployée est redémarré. IIS, le service WAS, le pool d'applications, l'application et les services sont configurés pour démarrer automatiquement avec l'ordinateur. Dans ce scénario, les services sont démarrés automatiquement au redémarrage de l'application. Si l'application est configurée pour démarrer automatiquement tous les services, tous les services au sein de l'application sont démarrés automatiquement ; sinon, seuls les services spécifiés dans le fichier Web.config sont démarrés.

  • Certains protocoles, tels que le protocole d'annonce WS-Discovery, requièrent la disponibilité permanente des applications. Lorsque vous activez le démarrage automatique pour une application et les services dans l'application, la fonctionnalité de démarrage automatique de Windows Server AppFabric démarre automatiquement les services chaque fois que l'application contenant les services est démarrée.

  • Le pool d'applications auquel appartient un service détecte la défaillance d'un grand nombre de ses processus de travail lors d'une période spécifiée et lance le processus de protection rapide en cas d'échec. La fonctionnalité de démarrage automatique prend en charge la protection rapide en cas d'échec : si un processus rencontre des échecs en nombre supérieur à une valeur configurable lors d'une période spécifiée, l'application et ses services ne sont pas redémarrés une fois le seuil de protection en cas d'échec dépassé.

Scénarios de redémarrage de l'ordinateur

La liste suivante détaille les étapes qu'implique généralement un scénario de redémarrage d'un ordinateur pris en charge par la fonctionnalité de démarrage automatique :

  1. Le service d'activation des processus Windows (WAS, Windows Process Activation Server) démarre si le service est configuré pour démarrer automatiquement. Vous pouvez configurer le service WAS à l'aide de l'applet Services dans les outils d'administration.

  2. Le service WAS démarre tous les pools d'applications configurés pour démarrer automatiquement. Le paramètre startMode de ces pools d'applications est défini sur AlwaysRunning dans le fichier ApplicationHost.config.

    <applicationPools>
        <add name=”MyAppPool” startMode=”AlwaysRunning” />
    </applicationPools>
    
  3. Le gestionnaire d'applications du service WAS charge toutes les applications configurées pour démarrer automatiquement. L'attribut serviceAutoStartEnabled est défini sur true pour ces applications dans le fichier ApplicationHost.config.

    <sites>
        <site name="MySite" id="1">
            <application path="/"  serviceAutoStartEnabled=”true” serviceAutoStartProvider=”Service” serviceAutoStartMode=”All/Custom”>
                <virtualDirectory path="/" physicalPath="C:\MySite" />
            </application>
        </site>
    </sites>                
    
  4. Le processus d'initialisation des applications appelle le module de démarrage automatique, qui démarre les services configurés pour démarrer automatiquement.

    L'attribut serviceAutoStartProvider est un point d'extensibilité IIS qui permet de démarrer les objets personnalisés. Le programme d'installation de Windows Server AppFabric installe le fournisseur de services et étend le schéma IIS pour ajouter l'attribut serviceAutoStartMode.

    Si l'attribut serviceAutoStartMode d'une application est défini sur All, tous les services dans l'application sont démarrés. Si le paramètre serviceAutoStartMode d'une application est défini sur Custom, seuls les services spécifiés dans le fichier Web.config sont démarrés.

    Le module de démarrage automatique utilise la valeur du paramètre relativeVirtualPath pour charger un service. Le fragment de configuration suivant provient d'un fichier Web.config pour lequel le paramètre relativeVirtualPath est configuré pour deux services. Le paramètre relativeVirtualPath d'un service représente le chemin d'accès au service par rapport à l'application contenant le service.

    // a sample Web.config fragment with two services configured to use the auto-start feature.
    <Microsoft.ProcessServer.Hosting>
        <serviceAutoStart>
            <add relativeVirtualPath =”/Calendar/Appointments.xamlx” >
            <add relativeVirtualPath =”/BookStore/ShoppingCart.svc” >
        </serviceAutoStart>
    </Microsoft.ProcessServer.Hosting>
    

    Conseil

    Les paramètres de démarrage automatique des services sont stockés dans le fichier Web.config, tandis que ceux des pools d'application et applications sont stockés dans le fichier ApplicationHost.config.

Configuration du démarrage automatique

Les extensions du Gestionnaire des services Internet et les cmdlets incluses dans AppFabric permettent de configurer la fonctionnalité démarrage automatique pour un service WCF ou WF. Pour obtenir des instructions détaillées sur la configuration de la fonctionnalité démarrage automatique, consultez les rubriques Configuration du démarrage automatique à l'aide du Gestionnaire des services Internet et Configuration du démarrage automatique à l'aide des cmdlets de Windows Server AppFabric dans la section Configuration du démarrage automatique.

Notes

Si la fonctionnalité démarrage automatique est activée pour un service, IIS ignore le paramètre IdleTimeout défini pour le pool d'applications et l'application utilisant le pool d'applications. Le processus de travail associé au pool d'applications reste en mémoire même après une période d'inactivité du pool d'applications supérieure à la valeur IdleTimeout.

Avertissement

Si le code d'initialisation est écrit d'une façon non efficace pour un service et que l'initialisation prend un long moment, le délai de démarrage d'IIS peut expirer et arrêter le processus dans son état actuel. Dans ce cas, il est recommandé d'utiliser plusieurs threads dans le code d'initialisation de votre service si celui-ci est exécuté sur des ordinateurs équipés de plusieurs processeurs.

Voir aussi

Concepts

Configuration du démarrage automatique

  2011-12-05