Udostępnij przez


Usługi hostingu

Aby stać się aktywna, usługa musi być hostowana w środowisku uruchomieniowym, które tworzy ją i kontroluje jej kontekst i okres istnienia. Usługi Windows Communication Foundation (WCF) są przeznaczone do uruchamiania w dowolnym procesie systemu Windows obsługującym kod zarządzany.

Program WCF udostępnia ujednolicony model programowania do tworzenia aplikacji zorientowanych na usługi. Ten model programowania pozostaje spójny i jest niezależny od środowiska uruchomieniowego, w którym jest wdrażana usługa. W praktyce oznacza to, że kod usług wygląda podobnie jak w przypadku opcji hostingu.

Te opcje hostingu wahają się od uruchamiania wewnątrz aplikacji konsolowej po środowiska serwera, takie jak usługa systemu Windows uruchomiona w procesie roboczym zarządzanym przez internetowe usługi informacyjne (IIS) lub przez usługę aktywacji procesów systemu Windows (WAS). Deweloperzy wybierają środowisko hostingu spełniające wymagania dotyczące wdrożenia usługi. Te wymagania mogą pochodzić z platformy, na której wdrożono aplikację, transportu, na którym musi wysyłać i odbierać komunikaty, lub na typ recyklingu procesów i inne zarządzanie procesami wymagane w celu zapewnienia odpowiedniej dostępności lub innych wymagań dotyczących zarządzania lub niezawodności. W następnej sekcji znajdują się informacje i wskazówki dotyczące opcji hostingu.

Opcje hostingu

Self-Host w aplikacji zarządzanej

Usługi WCF mogą być hostowane w dowolnej aplikacji zarządzanej. Jest to najbardziej elastyczna opcja, ponieważ wymaga najmniejszej infrastruktury do wdrożenia. Osadzasz kod usługi wewnątrz kodu aplikacji zarządzanej, a następnie tworzysz i otwierasz wystąpienie ServiceHost, aby udostępnić usługę. Aby uzyskać więcej informacji, zobacz Jak hostować usługę WCF w aplikacji zarządzanej.

Ta opcja umożliwia korzystanie z dwóch typowych scenariuszy: usługi WCF działające wewnątrz aplikacji konsolowych i rozbudowane aplikacje klienckie, takie jak oparte na windows Presentation Foundation (WPF) lub Windows Forms (WinForms). Hostowanie usługi WCF wewnątrz aplikacji konsolowej jest zwykle przydatne w fazie opracowywania aplikacji. Dzięki temu można łatwo debugować, łatwo uzyskać informacje o śledzeniu, aby dowiedzieć się, co dzieje się w aplikacji, oraz łatwo je przenosić, kopiując do nowych lokalizacji. Ta opcja hostingu ułatwia również rozbudowane aplikacje klienckie, takie jak aplikacje WPF i WinForms, do komunikowania się ze światem zewnętrznym. Na przykład klient współpracy peer-to-peer, który używa technologii WPF jako interfejs użytkownika, a także hostuje usługę WCF, która umożliwia innym klientom połączenie się z nim i udostępnianie informacji.

Zarządzane usługi systemu Windows

Ta opcja hostingu składa się z rejestrowania domeny aplikacji (AppDomain), która hostuje usługę WCF jako zarządzaną usługę systemu Windows (wcześniej znaną jako usługa NT), tak aby okres istnienia procesu usługi był kontrolowany przez menedżera kontroli usług (SCM) dla usług systemu Windows. Podobnie jak opcja samodzielnego hostingu, ten typ środowiska hostingu wymaga, aby część kodu hostingu została napisana jako część aplikacji. Usługa jest implementowana zarówno jako usługa systemu Windows, jak i jako usługa WCF, powodując dziedziczenie z ServiceBase klasy, a także z interfejsu kontraktu usługi WCF. Element ServiceHost jest następnie tworzony i otwierany w przesłoniętej metodzie OnStart(String[]), a zamykany w przesłoniętej metodzie OnStop(). Klasa instalatora, która dziedziczy z Installer, musi być również zaimplementowana, aby umożliwić zainstalowanie programu jako usługi systemu Windows za pomocą narzędzia Installutil.exe. Aby uzyskać więcej informacji, zobacz How to: Host a WCF Service in a Managed Windows Service (Instrukcje: hostowanie usługi WCF w usłudze zarządzanej systemu Windows). Scenariusz umożliwiany przez opcję hostingu zarządzanej usługi systemu Windows polega na długotrwałej usłudze WCF, która jest hostowana poza serwerem IIS w bezpiecznym środowisku niewzbudzanym przez komunikaty. Okres istnienia usługi jest kontrolowany przez system operacyjny. Ta opcja hostingu jest dostępna we wszystkich wersjach systemu Windows.

Internet Information Services (IIS)

Opcja hostingu usług IIS jest zintegrowana z ASP.NET i korzysta z funkcji oferowanych przez te technologie, takich jak odtwarzanie procesów, zamykanie bezczynności, monitorowanie kondycji procesów i aktywacja oparta na komunikatach. W systemach operacyjnych Windows XP i Windows Server 2003 jest to preferowane rozwiązanie do hostowania aplikacji usług sieci Web, które muszą być wysoce dostępne i wysoce skalowalne. Usługi IIS oferują również zintegrowaną możliwość zarządzania, których klienci oczekują od produktu serwera klasy korporacyjnej. Ta opcja hostingu wymaga prawidłowego skonfigurowania usług IIS, ale nie wymaga zapisania kodu hostingu w ramach aplikacji. Aby uzyskać więcej informacji na temat konfigurowania hostingu usług IIS dla usługi WCF, zobacz Instrukcje: hostowanie usługi WCF w usługach IIS.

Usługi hostowane przez usługi IIS mogą używać tylko transportu HTTP. Jego implementacja w usługach IIS 5.1 wprowadziła pewne ograniczenia w systemie Windows XP. pl-PL: Aktywacja bazująca na komunikatach udostępniona dla usługi WCF przez IIS 5.1 w systemie Windows XP blokuje wszystkie inne samodzielnie hostowane usługi WCF na tym samym komputerze z użyciem portu 80 do komunikacji. Usługi WCF mogą działać w tym samym AppDomain/Application Pool/Procesie roboczym co inne aplikacje, gdy są hostowane przez IIS 6.0 na Windows Server 2003. Jednak ponieważ zarówno WCF, jak i IIS 6.0 korzystają ze stosu HTTP działającego w trybie jądra (HTTP.sys), IIS 6.0 może współdzielić port 80 z innymi samodzielnie hostowanymi usługami WCF działającymi równocześnie na tym samym komputerze, w odróżnieniu od usług IIS 5.1.

Usługa aktywacji procesów systemu Windows (WAS)

Usługa aktywacji procesów systemu Windows (WAS) to nowy mechanizm aktywacji procesów dla systemu Windows Server 2008, który jest również dostępny w systemie Windows Vista. Zachowuje on znany model procesów usług IIS 6.0 (pule aplikacji i aktywację procesów opartych na komunikatach) i funkcje hostingu (takie jak szybka ochrona przed awariami, monitorowanie kondycji i recykling), ale usuwa zależność od protokołu HTTP z architektury aktywacji. IIS 7.0 używa WAS do aktywacji opartej na komunikatach przez HTTP. Dodatkowe składniki WCF również podłączają się do WAS, aby zapewnić aktywację opartą na wiadomościach za pośrednictwem innych protokołów obsługiwanych przez WCF, takich jak TCP, MSMQ i nazwane potoki. Umożliwia to aplikacjom korzystającym z protokołów komunikacyjnych korzystanie z funkcji usług IIS, takich jak odtwarzanie procesów, szybka ochrona po awarii i wspólny system konfiguracji, który był dostępny tylko dla aplikacji opartych na protokole HTTP.

Ta opcja hostingu wymaga prawidłowego skonfigurowania funkcji WAS, ale nie wymaga pisania żadnego kodu hostingu w ramach aplikacji. Aby uzyskać więcej informacji na temat konfigurowania hostingu WAS, zobacz How to: Host a WCF Service in WAS (Jak hostować usługę WCF w programie WAS).

Wybieranie środowiska hostingu

Poniższa tabela zawiera podsumowanie niektórych kluczowych korzyści i scenariuszy skojarzonych z poszczególnymi opcjami hostingu.

Środowisko hostingu Typowe scenariusze Najważniejsze korzyści i ograniczenia
Aplikacja zarządzana ("self-hosted") — Aplikacje konsolowe używane podczas programowania.
— Rozbudowane aplikacje klienckie WinForm i WPF, które uzyskują dostęp do usług.
-Elastyczny.
- Łatwe do wdrożenia.
— Nie jest rozwiązaniem dla przedsiębiorstw dla usług.
Usługi systemu Windows (wcześniej znane jako usługi NT) — Długotrwała usługa WCF hostowana poza usługami IIS. — Cykl życia procesu usługi jest kontrolowany przez system operacyjny, a nie przez komunikaty.
— Obsługiwane przez wszystkie wersje systemu Windows.
- Bezpieczne środowisko.
IIS 5.1, IIS 6.0 — Uruchamianie usługi WCF równocześnie z zawartością ASP.NET w Internecie przy użyciu protokołu HTTP. - Recykling procesów.
- Automatyczne wyłączanie przy bezczynności.
- Monitorowanie kondycji procesu.
- Aktywacja oparta na komunikatach.
- Tylko HTTP.
Usługa aktywacji procesów systemu Windows (WAS) — Uruchamianie usługi WCF bez instalowania usług IIS w Internecie przy użyciu różnych protokołów transportowych. — Usługi IIS nie są wymagane.
- Recykling procesów.
- Automatyczne wyłączanie przy bezczynności.
- Monitorowanie kondycji procesu.
- Aktywacja oparta na komunikatach.
Działa z HTTP, TCP, potokami nazwanymi i MSMQ.
USŁUGI IIS 7.0 — Uruchamianie usługi WCF z zawartością ASP.NET.
- Uruchamianie usługi WCF w Internecie przy użyciu różnych protokołów transportowych.
- Korzyści WAS.
— Zintegrowane z zawartością ASP.NET i usługAMI IIS.

Wybór środowiska hostingu zależy od wersji systemu Windows, na której jest wdrożona, wymaganych transportów do wysyłania komunikatów oraz rodzaju procesu i wymaganego recyklingu domeny aplikacji. Poniższa tabela zawiera podsumowanie danych związanych z tymi wymaganiami.

Środowisko hostingu Dostępność platformy Obsługiwane transporty Przetwarzanie i ponowne wykorzystanie domeny aplikacji
Aplikacje zarządzane ("self-hosted") Windows XP, Windows Server 2003, Windows Vista,

Windows Server 2008
HTTP,

net.tcp,

net.pipe,

net.msmq
Nie.
Usługi systemu Windows (wcześniej znane jako usługi NT) Windows XP, Windows Server 2003, Windows Vista,

Windows Server 2008
HTTP,

net.tcp,

net.pipe,

net.msmq
Nie.
USŁUGI IIS 5.1 Windows XP HTTP Tak
USŁUGI IIS 6.0 Windows Server 2003 HTTP Tak
Usługa aktywacji procesów systemu Windows (WAS) Windows Vista, Windows Server 2008 HTTP,

net.tcp,

net.pipe,

net.msmq
Tak

Należy pamiętać, że uruchomienie usługi lub dowolnego rozszerzenia z niezaufanego hosta narusza bezpieczeństwo. Ponadto, podczas otwierania ServiceHost z użyciem podszywania się, aplikacja musi upewnić się, że użytkownik nie jest wylogowany, na przykład przez buforowanie WindowsIdentity użytkownika.

Zobacz także