Udostępnij przez


Hostowanie aplikacji w kolejce w sieci Web

Usługa aktywacji procesów systemu Windows (WAS) zarządza aktywacją i okresem istnienia procesów roboczych zawierających aplikacje hostujące usługi Windows Communication Foundation (WCF). Model procesów WAS uogólnia model przetwarzania usług IIS 6.0 dla serwera HTTP, usuwając zależność od protokołu HTTP. Dzięki temu usługi WCF mogą używać protokołów HTTP i innych niż HTTP, takich jak net.msmq i msmq.formatname, w środowisku hostingu obsługującym aktywację opartą na komunikatach i oferuje możliwość hostowania dużej liczby aplikacji na danym komputerze.

WAS zawiera usługę aktywacji kolejkowania wiadomości (MSMQ), która aktywuje aplikację oczekującą w kolejce, gdy zostanie umieszczona jedna lub więcej wiadomości w jednej z kolejek używanych przez tę aplikację. Usługa aktywacji MSMQ to usługa NT, która jest domyślnie uruchamiana automatycznie.

Aby uzyskać więcej informacji na temat WAS i korzyści związanych z tą usługą, zobacz Hosting w usłudze aktywacji procesów systemu Windows. Aby uzyskać więcej informacji na temat usługi MSMQ, zobacz Kolejki — omówienie.

Adresowanie kolejki w systemie WAS

Aplikacje WAS mają adresy uniform Resource Identifier (URI). Adresy aplikacji mają dwie części: podstawowy prefiks identyfikatora URI i adres względny specyficzny dla aplikacji (ścieżka). Te dwie części zapewniają adres zewnętrzny aplikacji po połączeniu ze sobą. Prefiks podstawowego identyfikatora URI jest tworzony z powiązania witryny i jest używany dla wszystkich aplikacji w witrynie, na przykład "net.msmq://localhost", "msmq.formatname://localhost" lub "net.tcp://localhost". Następnie adresy aplikacji są tworzone przez pobranie fragmentów ścieżki specyficznej dla aplikacji (takich jak "/applicationOne") i dołączenie ich do podstawowego prefiksu identyfikatora URI w celu uzyskania pełnego identyfikatora URI aplikacji, na przykład "net.msmq://localhost/applicationOne".

Usługa aktywacji MSMQ używa identyfikatora URI aplikacji, aby dopasować kolejkę, którą musi monitorować pod kątem komunikatów. Po uruchomieniu usługi aktywacji MSMQ, usługa wylicza wszystkie publiczne i prywatne kolejki na komputerze, który jest skonfigurowany do odbierania wiadomości, i monitoruje je pod kątem komunikatów. Co 10 minut usługa aktywacji MSMQ odświeża listę kolejek do monitorowania. Po znalezieniu komunikatu w kolejce usługa aktywacji dopasowuje nazwę kolejki z najdłuższym pasującym identyfikatorem URI aplikacji dla powiązania net.msmq i aktywuje aplikację.

Uwaga / Notatka

Aktywowana aplikacja musi odpowiadać (najdłuższe dopasowanie) prefiksowi nazwy kolejki.

Na przykład nazwa kolejki to: msmqWebHost/orderProcessing/service.svc. Jeśli aplikacja 1 ma katalog wirtualny /msmqWebHost/orderProcessing z pod nim service.svc, a aplikacja 2 ma katalog wirtualny /msmqWebHost z orderProcessing.svc w nim, aplikacja 1 jest aktywowana. Jeśli aplikacja 1 zostanie usunięta, aplikacja 2 zostanie aktywowana.

Uwaga / Notatka

Po utworzeniu kolejki wszystkie komunikaty wysyłane do niej nie aktywują aplikacji, dopóki usługa aktywacji MSMQ nie odświeży listy kolejek, czyli co najwyżej 10 minut od momentu utworzenia kolejki. Ponowne uruchomienie usługi aktywacji powoduje również odświeżenie listy kolejek.

Wpływ kolejek prywatnych i publicznych na adresowanie

Usługa aktywacji MSMQ nie rozróżnia monitorowania kolejek prywatnych i publicznych. W związku z tym nie można mieć kolejek publicznych i prywatnych o tej samej nazwie. Jeśli tak, aplikacja hostowana w sieci Web może zostać aktywowana do odczytu z jednej z kolejek.

Konfiguracja kolejki na potrzeby aktywacji

Usługa aktywacji MSMQ działa jako usługa sieciowa. Jest to usługa, która monitoruje kolejki w celu aktywowania aplikacji. Aby można było aktywować aplikacje z kolejki, kolejka musi zapewnić dostęp do usługi NETWORK SERVICE, aby podejrzeć komunikaty na liście kontroli dostępu (ACL).

Zatrute wiadomości

Obsługę komunikatów zatrutych w programie WCF realizuje kanał, który nie tylko wykrywa zatruty komunikat, lecz także, na podstawie konfiguracji użytkownika, wybiera odpowiednią dyspozycję. W związku z tym w kolejce znajduje się jeden komunikat. Aplikacja hostowana w sieci Web przerywa się wielokrotnie, a komunikat jest przenoszony do kolejki prób ponownych. W momencie określonym przez opóźnienie cyklu ponowienia próby, komunikat jest przenoszony z kolejki ponawiania prób do kolejki głównej, aby spróbować ponownie. Jednak wymaga to aktywnego kanału w oczekiwaniu. Jeśli aplikacja jest ponownie użyta przez system WAS, komunikat pozostaje w kolejce ponownej próby aż do momentu, gdy inny komunikat pojawi się w kolejce głównej, aby aktywować aplikację w kolejce. Obejściem w tym przypadku jest ręczne przeniesienie komunikatu z kolejki ponawiania prób z powrotem do głównej kolejki w celu ponownego aktywowania aplikacji.

Zastrzeżenie kolejki podrzędnej i kolejki systemowej

Nie można aktywować aplikacji hostowanej przez WAS na podstawie komunikatów w kolejce systemowej, takiej jak kolejka wiadomości niedostarczonych w całym systemie lub kolejki podrzędne, takie jak kolejki zatrutych wiadomości. Jest to ograniczenie dla tej wersji produktu.

Zobacz także