Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La fonctionnalité de file d’attente de requêtes nommée de l’API HTTP Server version 2.0 permet à plusieurs applications, fonctionnant sous des processus distincts et des comptes d’utilisateur, d’accéder à la file d’attente de requêtes. La file d’attente de requêtes est ouverte par nom et sécurisée à l’aide des listes de contrôle d’accès (ACL) pour s’assurer que les applications ne peuvent pas accéder aux données des autres. Un processus unique crée la file d’attente de demandes et accorde l’autorisation à d’autres processus d’utiliser la file d’attente de requête. Par conséquent, d’autres processus sur l’ordinateur accèdent à la file d’attente de demandes avec le moins de privilèges nécessaires pour les demandes de service. Les dommages possibles au service HTTP, en raison de vulnérabilités dans le code tiers, sont réduits lorsque les applications s’exécutent sous des privilèges minimum.
La file d’attente de requête nommée est créée avec la fonction HttpCreateRequestQueue. Lorsque la file d’attente de requête est créée, l’application spécifie la liste de contrôle d’accès dans le paramètre pSecurityAttribute. La liste de contrôle d’accès, qui ne peut être définie que lorsque la file d’attente de requêtes est créée, permet aux processus de travail d’ouvrir la file d’attente de requête, de recevoir des demandes et d’envoyer des réponses. Par défaut, les processus ne sont pas autorisés à ouvrir une file d’attente de demandes, sauf s’ils ont reçu l’autorisation dans la liste de contrôle d’accès. Les applications ne nécessitent pas de privilèges d’administration pour créer la file d’attente de requêtes.
La file d’attente de requête doit être créée avec un nom spécifié dans le paramètre pName de HttpCreateRequestQueue pour que d’autres processus ouvrent la file d’attente de requête. Si pName est NULL, une file d’attente de requêtes non nommée est créée et aucun autre processus ne peut l’ouvrir.
Processus de créateur et de contrôleur
Lorsque la file d’attente de requête est créée, l’application peut l’ouvrir en tant que processus de contrôleur ou processus créateur. Le contrôleur et le créateur agissent en tant qu’administrateurs pour la file d’attente de requêtes, mais le contrôleur n’effectue pas d’opérations d’E/S dessus. L’application indique qu’il s’agit d’un processus de contrôleur lorsque la file d’attente de requêtes est créée en spécifiant HTTP_CREATE_REQUEST_QUEUE_FLAG_CONTROLLER dans le paramètre Flags de HttpCreateRequestQueue. Si l’indicateur HTTP_CREATE_REQUEST_QUEUE_FLAG_CONTROLLER n’est pas défini, l’application est un processus créateur.
La liste suivante contient les tâches effectuées par le processus du contrôleur et le processus créateur :
- Créez la file d’attente de demandes et spécifiez le nom.
- Configurez la file d’attente de requêtes à l’aide de la fonctionHttpSetRequestQueueProperty.
- Interrogez les paramètres de configuration de la file d’attente de requête à l’aide de la fonction HttpQueryRequestQueueProperty.
- Créez des groupes d’URL et associez-les à une file d’attente de requêtes.
- Définissez la liste de contrôle d’accès spécifiant les processus de travail autorisés à recevoir des E/S dans la file d’attente de requête.
- Appelez HttpWaitForDemandStart pour retarder l’instanciation des processus de travail jusqu’à ce que la première requête arrive dans la file d’attente de requêtes.
En plus de ces tâches, le processus créateur peut également effectuer des opérations d’E/S sur la file d’attente de requêtes.
Processus de travail
Un processus de travail peut ouvrir une file d’attente de requêtes existante uniquement s’ils ont été autorisés à y accéder dans la liste de contrôle d’accès. Les processus de travail qui fonctionnent sous des privilèges minimum peuvent ouvrir une file d’attente de demandes et y effectuer des E/S. Les applications ouvrent une file d’attente de requêtes existante en appelant HttpCreateRequestQueue avec le HTTP_CREATE_REQUEST_QUEUE_FLAG_OPEN_EXISTING dans le paramètre Indicateurs de et le nom de la file d’attente de requête dans le paramètre pName.
Le processus de travail effectue les fonctions suivantes :
- Recevoir des demandes et envoyer des réponses dans la file d’attente de demandes.
- Ouvrez une file d’attente de requêtes existante par nom. Impossible d’utiliser le handle de la file d’attente de requêtes retournée au processus de travail pour configurer la file d’attente de demandes.
- Interrogez les paramètres de configuration de la file d’attente de requêtes.
Le diagramme suivant montre le modèle de processus de travail pour les files d’attente de requêtes. La file d’attente de requêtes peut avoir plusieurs processus de travail qui traitent les E/S et un processus créateur qui configure la file d’attente de requête.
modèle de processus de travail 