Dela via


Webbvärd för ett köat program

Windows Process Activation Service (WAS) hanterar aktiveringen och livslängden för de arbetsprocesser som innehåller program som är värdar för WCF-tjänster (Windows Communication Foundation). WAS-processmodellen generaliserar IIS 6.0-processmodellen för HTTP-servern genom att ta bort beroendet av HTTP. Detta gör att WCF-tjänster kan använda både HTTP- och icke-HTTP-protokoll, till exempel net.msmq och msmq.formatname, i en värdmiljö som stöder meddelandebaserad aktivering och ger möjlighet att vara värd för ett stort antal program på en viss dator.

WAS innehåller en MSMQ-aktiveringstjänst (Message Queuing) som aktiverar ett köat program när ett eller flera meddelanden placeras i en av de köer som används av programmet. MSMQ-aktiveringstjänsten är en NT-tjänst som startas automatiskt som standard.

Mer information om WAS och dess fördelar finns i Hosting in Windows Process Activation Service (Värd i Windows Process Activation Service). Mer information om MSMQ finns i Översikt över köer.

Kö adressering i WAS

WAS-program har URI-adresser (Uniform Resource Identifier). Programadresser har två delar: ett bas-URI-prefix och en programspecifik, relativ adress (sökväg). Dessa två delar anger den externa adressen för ett program när det är kopplat. Bas-URI-prefixet är konstruerat från platsbindningen och används för alla program under webbplatsen, till exempel "net.msmq://localhost", "msmq.formatname://localhost" eller "net.tcp://localhost". Programadresser skapas sedan genom att använda programspecifika sökvägsfragment (till exempel "/applicationOne") och lägga till dem i bas-URI-prefixet för att komma fram till den fullständiga program-URI:n, till exempel "net.msmq://localhost/applicationOne".

MSMQ-aktiveringstjänsten använder program-URI:n för att matcha kön som MSMQ-aktiveringstjänsten måste övervaka för meddelanden. När MSMQ-aktiveringstjänsten startar räknas alla offentliga och privata köer upp på datorn som den är konfigurerad att ta emot från och övervakar dem för meddelanden. Var 10:e minut uppdaterar MSMQ-aktiveringstjänsten listan över köer som ska övervakas. När ett meddelande hittas i en kö matchar aktiveringstjänsten könamnet med den längsta matchande program-URI:n för net.msmq-bindningen och aktiverar programmet.

Kommentar

Programmet som aktiveras måste matcha prefixet för könamnet (längst matchning).

Ett könamn är till exempel: msmqWebHost/orderProcessing/service.svc. Om Program 1 har en virtuell katalog /msmqWebHost/orderProcessing med en service.svc under den, och Program 2 har en virtuell katalog /msmqWebHost med en orderProcessing.svc under den, aktiveras Program 1. Om program 1 tas bort aktiveras Program 2.

Kommentar

När en kö skapas aktiverar inte meddelanden som skickas till den ett program förrän MSMQ-aktiveringstjänsten uppdaterar kölistan, vilket är högst 10 minuter från den tidpunkt då kön skapades. Om du startar om aktiveringstjänsten uppdateras även kölistan.

Effekten av privata och offentliga köer på adressering

MSMQ-aktiveringstjänsten skiljer inte mellan övervakning av privata och offentliga köer. Därför kan du inte ha offentliga och privata köer med samma namn. Om du gör det kan ett webbaserat program få aktiverad läsning från någon av köerna.

Kökonfiguration för aktivering

MSMQ-aktiveringstjänsten körs som NÄTVERKSTJÄNST. Det är tjänsten som övervakar köer för att aktivera program. För att den ska kunna aktivera program från kön måste kön ge nätverkstjänståtkomst för att söka efter meddelanden i åtkomstkontrollistan (ACL).

Poison Messaging

Hantering av giftmeddelanden i WCF hanteras av kanalen, som inte bara identifierar att ett meddelande är förgiftat utan väljer en borttagning baserat på användarkonfigurationen. Därför finns det ett enda meddelande i kön. Det webbaserade programmet avbryter flera gånger och meddelandet flyttas till en kö för återförsök. Vid en punkt som styrs av fördröjningen av återförsökscykeln flyttas meddelandet från återförsökskön till huvudkön för att försöka igen. Men detta kräver att den köade kanalen är aktiv. Om programmet återvinns av WAS förblir meddelandet i återförsökskön tills ett annat meddelande tas emot i huvudkön för att aktivera det köade programmet. Lösningen i det här fallet är att flytta meddelandet manuellt från återförsökskön tillbaka till huvudkön för att återaktivera programmet.

Underkö- och systemkö–varning

Ett WAS-värdbaserat program kan inte aktiveras baserat på meddelanden i en systemkö, till exempel den systemomfattande kön med obeställbara meddelanden eller underköer, till exempel giftunderköer. Detta är en begränsning för den här versionen av produkten.

Se även