Wdrażanie witryny przy użyciu klienta FTP (C#)
Najprostszym sposobem wdrożenia aplikacji ASP.NET jest ręczne skopiowanie niezbędnych plików ze środowiska deweloperskiego do środowiska produkcyjnego. W tym samouczku pokazano, jak za pomocą klienta FTP pobrać pliki z pulpitu do dostawcy hosta sieci Web.
Wprowadzenie
W poprzednim samouczku przedstawiono prostą aplikację internetową Book Review ASP.NET, która składa się z kilku stron ASP.NET, strony wzorcowej, niestandardowej klasy bazowej Page
, wielu obrazów i trzech arkuszy stylów CSS. Teraz jesteśmy gotowi wdrożyć tę aplikację u dostawcy hosta internetowego, w którym to momencie aplikacja będzie dostępna dla wszystkich osób z połączeniem z Internetem!
Z naszych dyskusji w samouczku Określanie, jakie pliki muszą zostać wdrożone , wiemy, jakie pliki należy skopiować do dostawcy hosta internetowego. (Przypomnij sobie, że skopiowane pliki zależą od tego, czy aplikacja jest jawnie czy automatycznie skompilowana). Ale w jaki sposób pobieramy pliki ze środowiska programistycznego (naszego pulpitu) do środowiska produkcyjnego (serwera internetowego zarządzanego przez dostawcę hosta sieci Web)? F ile T ransfer P rotocol (FTP) to powszechnie używany protokół do kopiowania plików z jednej maszyny do innej za pośrednictwem sieci. Inną opcją jest rozszerzenie serwera frontpage (FPSE). Ten samouczek koncentruje się na używaniu autonomicznego oprogramowania klienckiego FTP do wdrażania niezbędnych plików ze środowiska deweloperskiego do środowiska produkcyjnego.
Uwaga
Program Visual Studio zawiera narzędzia do publikowania witryn internetowych za pośrednictwem protokołu FTP; te narzędzia, a także narzędzia korzystające z platformy FPSE, zostały omówione w następnym samouczku.
Aby skopiować pliki przy użyciu protokołu FTP, potrzebujemy klienta FTP w środowisku projektowym. Klient FTP to aplikacja przeznaczona do kopiowania plików z komputera zainstalowanego na komputerze z uruchomionym serwerem FTP. (Jeśli dostawca hosta sieci Web obsługuje transfery plików za pośrednictwem protokołu FTP, jak większość, istnieje serwer FTP uruchomiony na swoich serwerach internetowych). Dostępnych jest wiele aplikacji klienckich FTP. Przeglądarka internetowa może nawet podwoić się jako klient FTP. Mój ulubiony klient FTP i ten, którego będę używać w tym samouczku, to FileZilla, bezpłatny, open source klient FTP dostępny dla systemów Windows, Linux i Mac. Każdy klient FTP będzie jednak działać, więc możesz swobodnie korzystać z dowolnego klienta, z którym najbardziej się czujesz.
Jeśli wykonasz poniższe czynności, musisz utworzyć konto z dostawcą hosta internetowego, zanim będzie można ukończyć ten samouczek lub kolejne. Jak wspomniano w poprzednim samouczku, istnieje gaggle firm dostawców hostów internetowych z szerokim spektrum cen, funkcji i jakości usług. W tej serii samouczków będę używać rabatu ASP.NET jako mój dostawca hosta internetowego, ale możesz postępować wraz z dowolnym dostawcą hostów sieci Web, o ile obsługują one ASP.NET wersji witryny jest opracowywana. (Te samouczki zostały utworzone przy użyciu ASP.NET 3.5). Ponadto, ponieważ będziemy kopiować pliki do dostawcy hostów internetowych przy użyciu protokołu FTP w tym samouczku, a w przyszłości konieczne jest, aby dostawca hosta sieci Web obsługiwał dostęp FTP do swoich serwerów sieci Web. Praktycznie wszyscy dostawcy hostów sieci Web oferują tę funkcję, ale przed zarejestrowaniem się należy dokładnie sprawdzić.
Wdrażanie projektu aplikacji internetowej przeglądu książki
Pamiętaj, że istnieją dwie wersje aplikacji internetowej Book Review: jedna zaimplementowana przy użyciu modelu projektu aplikacji internetowej (BookReviewsWAP) i druga przy użyciu modelu projektu witryny sieci Web (BookReviewsWSP). Typ projektu ma wpływ na to, czy witryna jest kompilowana automatycznie, czy jawnie, a model kompilacji określa, jakie pliki należy wdrożyć. W związku z tym zbadamy wdrożenie projektów BookReviewsWAP i BookReviewsWSP oddzielnie, począwszy od bookReviewsWAP. Poświęć chwilę na pobranie tych dwóch ASP.NET aplikacji, jeśli jeszcze tego nie zrobiono.
Uruchom projekt BookReviewsWAP, przechodząc do BookReviewsWAP
folderu i klikając BookReviewsWAP.sln
dwukrotnie plik. Przed wdrożeniem projektu należy go skompilować, aby upewnić się, że wszelkie zmiany w kodzie źródłowym są uwzględnione w skompilowanym zestawie. Aby skompilować projekt, przejdź do menu Kompilacja i wybierz opcję menu Build BookReviewsWAP. Spowoduje to skompilowanie kodu źródłowego w projekcie w jednym zestawie, BookReviewsWAP.dll
który znajduje się w folderze Bin
.
Teraz jesteśmy gotowi do wdrożenia niezbędnych plików! Uruchom klienta FTP i połącz się z serwerem internetowym u dostawcy hosta sieci Web. (Po zarejestrowaniu się w firmie hostingowej internetowej będą oni wysyłać wiadomości e-mail na temat sposobu nawiązywania połączenia z serwerem FTP; obejmuje to adres serwera FTP, a także nazwę użytkownika i hasło).
Skopiuj następujące pliki z pulpitu do głównego folderu witryny internetowej u dostawcy hosta sieci Web. Podczas korzystania z protokołu FTP na serwerze sieci Web u dostawcy hosta sieci Web prawdopodobnie jesteś w katalogu głównej witryny sieci Web. Jednak niektórzy dostawcy hostów sieci Web mają podfolder o nazwie www
lub wwwroot
służący jako folder główny dla plików witryny sieci Web. Na koniec, gdy FTPing plików może być konieczne utworzenie odpowiedniej struktury folderów w środowisku produkcyjnym — Bin
folder, Fiction
folder, folder, Images
folder itd.
~/Default.aspx
~/About.aspx
~/Site.master
~/Web.config
~/Web.sitemap
- Pełna zawartość
Styles
folderu - Pełna zawartość
Images
folderu (i jego podfolder,BookCovers
) ~/Fiction/Default.aspx
~/Fiction/Blaze.aspx
~/Tech/Default.aspx
~/Tech/CYOW.aspx
~/Tech/TYASP35.aspx
~/Bin/BookReviewsWAP.dll
Rysunek 1 przedstawia plik FileZilla po skopiowaniu niezbędnych plików. PlikZilla wyświetla pliki na komputerze lokalnym po lewej stronie i pliki na komputerze zdalnym po prawej stronie. Jak pokazano na rysunku 1, ASP.NET pliki kodu źródłowego, takie jak About.aspx.cs
, znajdują się na komputerze lokalnym (środowisku deweloperskim), ale nie zostały skopiowane do dostawcy hosta internetowego (środowiska produkcyjnego), ponieważ pliki kodu nie muszą być wdrażane podczas korzystania z jawnej kompilacji.
Uwaga
Nie ma żadnych szkód w działaniu plików kodu źródłowego na serwerze produkcyjnym, ponieważ są one ignorowane. ASP.NET domyślnie zabrania żądań HTTP do plików kodu źródłowego, tak aby nawet wtedy, gdy pliki kodu źródłowego znajdują się na serwerze produkcyjnym, są niedostępne dla odwiedzających witrynę internetową. (Oznacza to, że jeśli użytkownik próbuje odwiedzić http://www.yoursite.com/Default.aspx.cs
, zostanie wyświetlona strona błędu, która wyjaśnia, że tego typu pliki - .cs
pliki - są zabronione).
Rysunek 1. Kopiowanie niezbędnych plików z pulpitu do serwera sieci Web u dostawcy hosta sieci Web za pomocą klienta FTP (kliknij, aby wyświetlić obraz o pełnym rozmiarze)
Po wdrożeniu witryny poświęć chwilę na przetestowanie witryny. Jeśli zakupiono nazwę domeny i prawidłowo skonfigurowano ustawienia DNS, możesz odwiedzić witrynę, wprowadzając nazwę domeny. Alternatywnie dostawca hosta sieci Web powinien dostarczyć Ci adres URL do witryny, który będzie wyglądać podobnie do nazwy konta. webhostprovider.com lub webhostprovider.com/accountname. Na przykład adres URL mojego konta w ASP.NET rabatu to: http://httpruntime.web703.discountasp.net
.
Rysunek 2 przedstawia wdrożony witrynę Recenzje książek. Pamiętaj, że wyświetlam go na platformie ASP rabatu. Serwery platformy NET pod adresem http://httpruntime.web703.discountasp.net
. W tym momencie każda osoba mająca połączenie z Internetem może wyświetlić moją witrynę internetową! Zgodnie z oczekiwaniami witryna wygląda i zachowuje się tak samo, jak podczas testowania jej w środowisku projektowym.
Uwaga
Jeśli podczas wyświetlania aplikacji wystąpi błąd, poświęć chwilę, aby upewnić się, że wdrożono poprawny zestaw plików. Następnie sprawdź komunikat o błędzie, aby sprawdzić, czy ujawnia jakiekolwiek wskazówki dotyczące problemu. Następnie możesz zwrócić się do działu pomocy technicznej firmy hostów internetowych lub opublikować swoje pytanie na odpowiednim forum na forach ASP.NET.
Rysunek 2. Witryna przeglądów książek jest teraz dostępna dla wszystkich osób z połączeniem internetowym (kliknij, aby wyświetlić obraz pełnowymiarowy)
Wdrażanie projektu witryny sieci Web przeglądu książki
Podczas wdrażania aplikacji ASP.NET korzystającej z automatycznej kompilacji, takiej jak Projekt witryny sieci Web BookReviewsWSP, w folderze Bin
nie ma skompilowanego zestawu. W związku z tym pliki kodu źródłowego aplikacji internetowej muszą zostać wdrożone w środowisku produkcyjnym. Omówimy ten proces.
Podobnie jak w przypadku projektu aplikacji internetowej, należy najpierw skompilować aplikację przed jej wdrożeniem. Podczas kompilowania projektu witryny sieci Web nie tworzy zestawu, sprawdza on błędy czasu kompilacji na stronie. Lepiej znaleźć te błędy teraz, a nie osoby odwiedzającej witrynę, aby je odnaleźć.
Po pomyślnym skompilowania projektu użyj klienta FTP, aby skopiować następujące pliki do głównego folderu witryny internetowej u dostawcy hosta sieci Web. Może być konieczne utworzenie odpowiedniej struktury folderów w środowisku produkcyjnym.
Uwaga
Jeśli projekt BookReviewsWAP został już wdrożony, ale nadal chcesz spróbować wdrożyć projekt BookReviewsWSP, najpierw usuń wszystkie pliki na serwerze internetowym, które zostały przekazane podczas wdrażania bookReviewsWAP, a następnie wdróż pliki dla BookReviewsWSP.
~/Default.aspx
~/Default.aspx.cs
~/About.aspx
~/About.aspx.cs
~/Site.master
~/Site.master.cs
~/Web.config
~/Web.sitemap
- Pełna zawartość
Styles
folderu - Pełna zawartość
Images
folderu (i jego podfolder,BookCovers
) ~/App_Code/BasePage.cs
~/Fiction/Default.aspx
~/Fiction/Default.aspx.cs
~/Fiction/Blaze.aspx
~/Fiction/Blaze.aspx.cs
~/Tech/Default.aspx
~/Tech/Default.aspx.cs
~/Tech/CYOW.aspx
~/Tech/CYOW.aspx.cs
~/Tech/TYASP35.aspx
~/Tech/TYASP35.aspx.cs
Rysunek 3 przedstawia plik FileZilla po skopiowaniu niezbędnych plików. Jak widać, pliki kodu źródłowego ASP.NET, takie jak About.aspx.cs
, są obecne na komputerze lokalnym (środowisku deweloperskim) i dostawcy hosta sieci Web (środowisku produkcyjnym), ponieważ pliki kodu należy wdrożyć podczas korzystania z automatycznej kompilacji.
Rysunek 3. Kopiowanie niezbędnych plików z pulpitu do serwera sieci Web u dostawcy hosta sieci Web przy użyciu klienta FTP (kliknij, aby wyświetlić obraz pełnowymiarowy)
Środowisko użytkownika nie ma wpływu na model kompilacji aplikacji. Te same strony ASP.NET są dostępne i wyglądają tak samo, czy witryna internetowa została utworzona przy użyciu modelu projektu aplikacji internetowej, czy modelu projektu witryny sieci Web.
Aktualizowanie aplikacji internetowej w środowisku produkcyjnym
Tworzenie i wdrażanie aplikacji internetowych nie jest procesem jednorazowym. Na przykład podczas tworzenia witryny internetowej Book Review skompilowałem różne strony i napisałem towarzyszący kod na moim komputerze osobistym (środowisku projektowym). Po osiągnięciu pewnego stabilnego stanu wdrożono moją aplikację, aby inni mogli odwiedzić witrynę i przeczytać moje recenzje. Jednak wdrożenie nie oznacza końca mojego programowania w tej witrynie. Mogę dodać więcej recenzji książek lub zaimplementować nowe funkcje, takie jak umożliwienie moim odwiedzającym ocenianie książek lub pozostawienie własnych komentarzy. Takie ulepszenia zostałyby opracowane w środowisku projektowym, a po zakończeniu należy je wdrożyć. W związku z tym programowanie i wdrażanie są cykliczne. Utworzysz aplikację, a następnie wdrożysz ją. Gdy witryna jest aktywna i w środowisku produkcyjnym, nowe funkcje są dodawane, a błędy są naprawiane w czasie, co wymaga ponownego wdrożenia aplikacji. I tak dalej i tak dalej.
Jak można się spodziewać, podczas ponownego wdrażania aplikacji internetowej wystarczy skopiować nowe i zmienione pliki. Nie ma potrzeby ponownego wdrażania niezmienionych stron ani plików pomocy technicznej po stronie serwera lub klienta (chociaż nie ma to żadnych szkód).
Uwaga
Należy pamiętać, że w przypadku korzystania z jawnej kompilacji jest to, że w dowolnym momencie dodawania nowej strony ASP.NET do projektu lub wprowadzania jakichkolwiek zmian związanych z kodem należy ponownie skompilować projekt, który aktualizuje zestaw w folderze Bin
. W związku z tym należy skopiować ten zaktualizowany zestaw do środowiska produkcyjnego podczas aktualizowania aplikacji internetowej w środowisku produkcyjnym (wraz z inną nową i zaktualizowaną zawartością).
Należy również pamiętać, że wszelkie zmiany Web.config
plików w Bin
katalogu lub są zatrzymywane i ponownie uruchamiane w puli aplikacji witryny internetowej. Jeśli stan sesji jest przechowywany przy użyciu InProc
trybu (ustawienie domyślne), odwiedzający witrynę utracą stan sesji za każdym razem, gdy te pliki kluczy zostaną zmodyfikowane. Aby uniknąć tej pułapki, rozważ przechowywanie sesji przy użyciu StateServer
trybów lub SQLServer
. Aby uzyskać więcej informacji na ten temat, przeczytaj Tryby stanu sesji.
Na koniec należy pamiętać, że ponowne wdrożenie aplikacji może potrwać od kilku sekund do kilku minut, w zależności od liczby i rozmiaru plików, które należy skopiować do środowiska produkcyjnego. W tym czasie użytkownicy odwiedzający witrynę mogą napotkać błędy lub dziwne zachowanie. Możesz "wyłączyć" całą aplikację, dodając stronę o nazwie do App_Offline.htm
katalogu głównego aplikacji, która wyjaśnia użytkownikom, że witryna nie działa w celu konserwacji (lub cokolwiek innego) i wkrótce zostanie utworzona kopia zapasowa. App_Offline.htm
Gdy plik jest obecny, środowisko uruchomieniowe ASP.NET przekierowuje wszystkie żądania przychodzące do tej strony.
Podsumowanie
Wdrożenie aplikacji internetowej wiąże się z kopiowaniem niezbędnych plików ze środowiska deweloperskiego do środowiska produkcyjnego. Najbardziej typowym sposobem przesyłania plików za pośrednictwem sieci jest protokół TRANSFERU plików (FTP), a większość dostawców hostów internetowych obsługuje dostęp FTP do swoich serwerów sieci Web. W tym samouczku pokazano, jak za pomocą klienta FTP wdrożyć wymagane pliki na serwerze internetowym. Po wdrożeniu witryna internetowa może być odwiedzana przez każdego, kto ma połączenie z Internetem!
Szczęśliwe programowanie!
Dalsze informacje
Aby uzyskać więcej informacji na temat tematów omówionych w tym samouczku, zapoznaj się z następującymi zasobami: