Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Funkce fronty požadavků s názvem HTTP Server verze 2.0 umožňuje více aplikacím, které pracují v samostatných procesech a uživatelských účtech, přístup k frontě požadavků. Fronta žádostí je otevřena podle názvu a zabezpečená pomocí seznamů řízení přístupu (ACL) k zajištění toho, aby aplikace neměly přístup k datům ostatních. Jeden proces vytvoří frontu žádostí a udělí ostatním procesům oprávnění k použití fronty požadavků. Jiné procesy v počítači tak přistupují k frontě požadavků s nejnižšími oprávněními potřebnými pro žádosti o služby. Možné poškození služby HTTP kvůli ohrožením zabezpečení v kódu třetí strany je minimalizované, když aplikace běží pod nejnižšími oprávněními.
Pojmenovaná fronta požadavků se vytvoří pomocí funkce HttpCreateRequestQueue. Při vytvoření fronty požadavků aplikace určuje seznam ACL v parametru pSecurityAttribute. Seznam ACL, který lze nastavit pouze při vytvoření fronty požadavků, umožňuje pracovním procesům otevřít frontu požadavků, přijímat požadavky a odesílat odpovědi. Ve výchozím nastavení nejsou procesy povoleny k otevření fronty žádostí, pokud nejsou udělena oprávnění v seznamu ACL. Aplikace nevyžadují oprávnění správce k vytvoření fronty žádostí.
Fronta požadavků musí být vytvořena s názvem zadaným v parametru pName HttpCreateRequestQueue pro ostatní procesy, aby se otevřela fronta požadavků. Pokud je pNamenull, vytvoří se nepojmenovaná fronta požadavků a žádné jiné procesy ji nebudou moct otevřít.
Procesy tvůrce a kontroleru
Po vytvoření fronty požadavků ji aplikace může otevřít jako proces kontroleru nebo proces tvůrce. Kontroler i tvůrce zpracovávají jak správci fronty požadavků, ale kontroler na ní neprovádí vstupně-výstupní operace. Aplikace označuje, že jde o proces kontroleru při vytvoření fronty požadavků zadáním HTTP_CREATE_REQUEST_QUEUE_FLAG_CONTROLLER v parametru Flags parametru HttpCreateRequestQueue. Pokud není příznak HTTP_CREATE_REQUEST_QUEUE_FLAG_CONTROLLER nastavený, aplikace je proces tvůrce.
Následující seznam obsahuje úlohy prováděné procesem kontroleru a procesem tvůrce:
- Vytvořte frontu žádostí a zadejte název.
- Nakonfigurujte frontu požadavků pomocí funkce HttpSetRequestQueueProperty.
- Pomocí funkce HttpQueryRequestQueueProperty zadejte dotaz na parametry konfigurace fronty požadavku.
- Vytvořte skupiny adres URL a přidružíte je k frontě požadavků.
- Nastavte seznam ACL určující pracovní procesy, které mají povoleno přijímat vstupně-výstupní operace ve frontě požadavků.
- Volání HttpWaitForDemandStart zpoždění vytváření instancí pracovních procesů do doby, než první požadavek dorazí do fronty žádosti.
Kromě těchto úloh může proces tvůrce také provádět vstupně-výstupní operace ve frontě požadavků.
Pracovní procesy
Pracovní proces může otevřít existující frontu žádostí pouze v případě, že k ní byl udělen přístup v seznamu ACL. Pracovní procesy, které pracují s nejnižšími oprávněními, můžou otevřít frontu žádostí a provádět v ní vstupně-výstupní operace. Aplikace otevřou existující frontu požadavků voláním HttpCreateRequestQueue s HTTP_CREATE_REQUEST_QUEUE_FLAG_OPEN_EXISTING v parametru Flags a názvem fronty požadavků v parametru pName.
Pracovní proces provádí následující funkce:
- Přijímat žádosti a odesílat odpovědi do fronty požadavků
- Otevřete existující frontu žádostí podle názvu. Popisovač fronty požadavků vrácené do pracovního procesu nelze použít ke konfiguraci fronty požadavků.
- Zadejte dotaz na parametry konfigurace fronty požadavků.
Následující diagram znázorňuje model pracovního procesu pro fronty požadavků. Fronta požadavků může mít několik pracovních procesů, které zpracovávají vstupně-výstupní operace, a procesy jednoho tvůrce, které konfigurují frontu požadavků.