Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
MED HTTP Server version 2.0 API:et med namnet request queue feature (HTTP Server version 2.0 API med namnet request queue) kan flera program, som körs under separata processer och användarkonton, åtkomst till begärandekön. Begärandekön öppnas med namn och skyddas med hjälp av åtkomstkontrollistor (ACL: er) för att säkerställa att program inte kan komma åt varandras data. En enda process skapar begärandekön och ger behörighet till andra processer för att använda begärandekön. Andra processer på datorn får därför åtkomst till begärandekön med den lägsta behörighet som krävs för tjänstbegäranden. Eventuella skador på HTTP-tjänsten på grund av sårbarheter i kod från tredje part minimeras när program körs med minsta möjliga behörighet.
Den namngivna begärandekön skapas med funktionen HttpCreateRequestQueue. När begärandekön skapas anger programmet ACL i parametern pSecurityAttribute. ACL, som bara kan anges när begärandekön skapas, tillåter arbetsprocesser att öppna begärandekön, ta emot begäranden och skicka svar. Som standard tillåts inte processer att öppna en begärandekö om de inte har beviljats behörighet i ACL:en. Program kräver inte administratörsbehörighet för att skapa begärandekön.
Begärandekön måste skapas med ett namn som anges i parametern pName för HttpCreateRequestQueue för andra processer för att öppna begärandekön. Om pName är NULL-skapas en namnlös begärandekö och inga andra processer kan öppna den.
Processer för skapare och kontrollanter
När begärandekön skapas kan programmet öppna den som en kontrollantprocess eller en skaparprocess. Både kontrollanten och skaparen fungerar som administratörer för begärandekön, men kontrollanten utför inte I/O-åtgärder på den. Programmet anger att det är en kontrollantprocess när begärandekön skapas genom att ange HTTP_CREATE_REQUEST_QUEUE_FLAG_CONTROLLER i parametern Flags för HttpCreateRequestQueue. Om flaggan HTTP_CREATE_REQUEST_QUEUE_FLAG_CONTROLLER inte har angetts är programmet en skaparprocess.
Följande lista innehåller uppgifter som utförs av kontrollantprocessen och skaparprocessen:
- Skapa begärandekön och ange namnet.
- Konfigurera begärandekön med hjälp av funktionen HttpSetRequestQueueProperty.
- Fråga konfigurationsparametrarna för begärandekön med hjälp av funktionen HttpQueryRequestQueueProperty.
- Skapa URL-grupper och associera dem med en begärandekö.
- Ange den ACL som anger de arbetsprocesser som tillåts ta emot I/O i begärandekön.
- Anropa HttpWaitForDemandStart för att fördröja instansiering av arbetsprocesser tills den första begäran kommer till begärandekön.
Förutom dessa uppgifter kan skaparprocessen även utföra I/O-åtgärder i begärandekön.
Arbetsprocesser
En arbetsprocess kan endast öppna en befintlig begärandekö om de har beviljats åtkomst till den i ACL:en. Arbetsprocesser som arbetar under lägsta behörighet kan öppna en begärandekö och utföra I/O på den. Program öppnar en befintlig begärandekö genom att anropa HttpCreateRequestQueue med HTTP_CREATE_REQUEST_QUEUE_FLAG_OPEN_EXISTING i parametern Flags och namnet på begärandekön i parametern pName.
Arbetsprocessen utför följande funktioner:
- Ta emot begäranden och skicka svar i begärandekön.
- Öppna en befintlig kö för begäran efter namn. Referensen till begärandekön som returneras till arbetsprocessen kan inte användas för att konfigurera begärandekön.
- Fråga konfigurationsparametrarna för begärandekön.
Följande diagram visar arbetsprocessmodellen för begärandeköer. Begärandekön kan ha flera arbetsprocesser som bearbetar I/O och en skaparprocess som konfigurerar begärandekön.