Ten post omówi możliwości i sposoby hostowania serwisu.
Dowiedzieliśmy się już że serwis można hostować w innej aplikacji .NET za pomocą klasy ServiceHost. Klasa ta pozwala na hostowanie serwisu WCF w dowolnej aplikacji .NET.
Prawidłowa obsługa tworzenia instancji klasy ServiceHost przebiega w następujący sposób:
Code:
Drugą możliwością prawidłowej obsługi tworzenia klasy ServiceHost jest użycie bloku using, pokazany we wcześniejszym poście:
Code:
Czym różni się Close od Abort:
- Close - standardowy sposób zamykania kanału komunikacji w wyniku którego:
- operacje które trwają nie zostaną przerwane
- możemy tę operację przeprowadzić asynchronicznie
- zwalnia zasoby
- może rzucić wyjątkiem CommunicationException lub TimeoutException
- Abort - wymuszone zamknięcie kanału komunikacji
- zamyka kanał bez oczekiwania na zakończenie operacji, które są w toku
W przypadku wyboru Self hostingu najlepszym typem aplikacji do hostowania serwisu WCF jest Windows Service. Powody, dla których warto korzystać z Windows Service w celu hostowania WCF:
- Zapewnione wznawianie usługi w przypadku wystąpienia błędów
- Konfigurowalne zachowanie uruchamiania aplikacji
- Konfiguracja zabezpieczeń
- kiedy chcemy aby nasz serwis działał w aplikacji klienckiej
- kiedy serwis ma działać InProc czyli w tym samym procesie co aplikacja główna
- kiedy nie możemy użyć IIS
- kiedy chcemy mieć nieograniczone możliwości konfiguracji i rozszerzania serwisu
Inną metodą hostowania aplikacji WCF jest wykorzystanie serwera IIS. Jest to jeden z popularniejszych sposobów hostowania aplikacji.
Hostowanie aplikacji na IIS ma szereg zalet:
- hostowanie aplikacji WCF przebiega w ten sam sposób jak aplikacji webowych
- udostępnione są narzędzia do monitorowania, zarządzania i kontroli hostowanej aplikacji
- możliwość wykorzystania współdzielenia tego samego procesu do obsługi wielu aplikacji w celu zmniejszenia obciążenia na serwerze przez dużą ilość serwisów
Jeżeli chcemy mieć pełną kontrolę nad cyklem życia aplikacji WCF najlepiej skorzystać z hostowania w Windows Service. W innym przypadku warto wybrać IIS.
W jaki sposób hostować aplikację na IIS? Bardzo dobrze opisane jest to na stronie MSDN: http://msdn.microsoft.com/pl-pl/library/ms733766.aspx
Brak komentarzy:
Prześlij komentarz