Udostępnij za pośrednictwem


Sieć Web hostująca aplikację zakolejkowaną

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 komunikatów (MSMQ), która aktywuje aplikację w kolejce, gdy co najmniej jeden komunikat jest umieszczany w jednej z kolejek używanych przez 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 jego korzyści, 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 usłudze 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 do dopasowania do kolejki, którą usługa aktywacji MSMQ musi monitorować pod kątem komunikatów. Po uruchomieniu usługi aktywacji MSMQ wylicza wszystkie kolejki publiczne i prywatne na komputerze skonfigurowanym do odbierania i monitorowania ich 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 do najdłuższego zgodnego identyfikatora URI aplikacji dla powiązania net.msmq i aktywuje aplikację.

Uwaga

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

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 SIECIOWEJ, aby wyświetlić komunikaty na liście kontroli dostępu (ACL).

Obsługa zatrutych komunikatów

Obsługa komunikatów zatrutych w programie WCF jest obsługiwana przez kanał, który nie tylko wykrywa, że komunikat jest zatruty, ale wybiera dyspozycję na podstawie konfiguracji użytkownika. W związku z tym w kolejce występuje jeden komunikat. Aplikacja hostowana w sieci Web przerywa kolejne czasy, a komunikat jest przenoszony do kolejki ponawiania prób. W momencie dyktowanym przez opóźnienie cyklu ponawiania 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 kolejce. Jeśli aplikacja jest odzyskiwanych przez aplikację WAS, komunikat pozostaje w kolejce ponawiania próby do momentu odebrania innego komunikatu w kolejce głównej w celu aktywowania aplikacji 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 utraconych komunikatów na całym systemie lub kolejki podrzędne, takie jak zatrute kolejki podrzędne. Jest to ograniczenie dla tej wersji produktu.

Zobacz też