Web Deploy jest narzędziem klient-serwer. Zazwyczaj używa się tego mechanizmu do publikowania (synchronizacji) skompilowanej aplikacji web ze środowiska deweloperskiego (jak Visual Studio) do serwera IIS. Innymi słowy umożliwia nam publikowanie naszej aplikacji z Visual Studio bezpośrednio na serwer IIS.
W poniższym przykładzie pokażemy jak opublikować z Visual Studio aplikację .Net Core.
Jak przygotować Windows Server i skonfigurować IIS do hostowania aplikacji Web .NET Core przeczytasz
tutaj.
1. Instalujemy na serwerze Windows pakiet “Web deploy”. Użyjemy do tego “Microsoft Web Platform Installer”. Dzięki temu zostaną zainstalowane wszystkie zalecane pakiety potrzebne do publikowania aplikacji. Pobieramy i instalujemy Web Platform Installer ze strony: https://www.microsoft.com/web/downloads/platform.aspx. Po instalacji uruchamiamy Web Platform Installer i w polu wyszukiwania wpisujemy “Recommended Server Configuration”. Wybieramy pakiet “Recommended Server Configuration for Web Hosting Providers” klikając przycisk “Add”. Następnie klikamy “Install”.
2. Po zainstalowaniu powyższego zestawu pojawią się w IIS opcje pozwalające na skonfigurowanie Web deploy. Zanim do nich przejdziemy utworzymy użytkownika Windows bez praw administratora, który będzie miał uprawnienia do publikowania na naszym serwerze. Ja utworzyłem użytkownika o nazwie “webdeployuser”.
Następnie przechodzimy do “IIS Manager” i nadajemy uprawnienia do naszej strony utworzonemu użytkownikowi. W tym celu klikamy na nazwę naszej strony w katalogu “Sites” i z sekcji “Management”, po prawej, uruchamiamy “IIS Mananger Permissions”.
3. Z menu “Actions” w sekcji po prawej stronie klikamy “Allow User…”, następnie w oknie, które się pojawi klikamy przycisk “Select” i wybieramy użytkownika Windows. Tutaj będzie to “webdeployuser”. Na koniec zatwierdzamy nasz wybór przyciskami “OK”.
W efekcie otrzymamy taki stan:
4. W “IIS Manager” klikamy prawym przyciskiem na nazwę naszej strony w katalogu “Sites”. Z menu wybieramy “Deploy” i “Configure Web Deploy Publishing…”.
5. W oknie, które się pojawi wybieramy z listy użytkownika, który będzie miał uprawnienia do publikowania. Następnie definiujemy url pod jakim będzie dostępny serwis. Domyślnie jest to: https://nazwa-serwera:8172/msdeploy.axd. Ja zmieniam nazwę serwera w url na publiczną domenę: https://it-business.pl:8172/msdeploy.axd. Jako trzeci parametr wskazujemy ścieżkę, gdzie zostanie zapisany plik z ustawieniami.
6. Aby zadziałał Web Deploy z zewnątrz serwer musi mieć otwarty port 8172. Na AWS port otwieramy przez tzw. “Security groups” w konsoli EC2.
7. Przechodzimy do projektu naszej aplikacji w Visual Studio (tutaj wersja 2019). Uruchom opcję Publikacji projektu i przejdź do utworzenia nowego profilu.
8. W oknie konfiguracji podajemy parametry połączenia do Web Deploy bazując na tym co skonfigurowaliśmy w poprzednich punktach. Następnie klikamy przycisk “Weryfikuj połączenie”. Być może będziesz musiał zaakceptować i zaimportować certyfikat serwera. Weryfikacja powinna zakończyć się sukcesem. Zapisujemy profil.
9. Publikujemy aplikację web na naszym serwerze przy pomocy Web Deploy. Sukces.