Wdrażanie aplikacji internetowej ASP.NET przy użyciu SQL Server Compact przy użyciu programu Visual Studio lub Visual Web Developer: wdrażanie w środowisku produkcyjnym — 7 z 12

Autor : Tom Dykstra

Pobierz projekt startowy

W tej serii samouczków pokazano, jak wdrożyć (opublikować) projekt aplikacji internetowej ASP.NET zawierający bazę danych SQL Server Compact przy użyciu programu Visual Studio 2012 RC lub Visual Studio Express 2012 RC for Web. Możesz również użyć programu Visual Studio 2010, jeśli zainstalujesz aktualizację publikowania w sieci Web. Aby zapoznać się z wprowadzeniem do serii, zobacz pierwszy samouczek z serii.

W przypadku samouczka przedstawiającego funkcje wdrażania wprowadzone po wydaniu programu Visual Studio 2012 w wersji RC przedstawiono sposób wdrażania wersji SQL Server innych niż SQL Server Compact oraz pokazano, jak wdrożyć w Azure App Service Web Apps, zobacz ASP.NET Web Deployment using Visual Studio (Wdrażanie w Internecie przy użyciu programu Visual Studio).

Omówienie

W tym samouczku skonfigurujesz konto u dostawcy hostingu i wdrożysz aplikację internetową ASP.NET w środowisku produkcyjnym przy użyciu funkcji publikowania jednym kliknięciem programu Visual Studio.

Przypomnienie: Jeśli zostanie wyświetlony komunikat o błędzie lub coś nie działa podczas pracy z samouczkiem, pamiętaj, aby sprawdzić stronę rozwiązywania problemów.

Wybieranie dostawcy hostingu

W przypadku aplikacji Contoso University i tej serii samouczków potrzebny jest dostawca obsługujący ASP.NET 4 i Web Deploy. Wybrano konkretną firmę hostingową, aby samouczki mogły zilustrować kompletne środowisko wdrażania w aktywnej witrynie internetowej. Każda firma hostingowa oferuje różne funkcje, a środowisko wdrażania na serwerach nieco się zmienia. Jednak proces opisany w tym samouczku jest typowy dla całego procesu. Dostawca hostingu używany na potrzeby tego samouczka, Cytanium.com, jest jednym z wielu, które są dostępne, a jego użycie w tym samouczku nie stanowi poparcia ani zalecenia.

Gdy wszystko będzie gotowe do wyboru własnego dostawcy hostingu, możesz porównać funkcje i ceny w galerii dostawców w witrynie Microsoft.com/web.

Tworzenie konta

Utwórz konto u wybranego dostawcy. Jeśli obsługa pełnej bazy danych SQL Server jest dodatkowa, nie trzeba jej wybierać na potrzeby tego samouczka, ale będzie ona potrzebna w samouczku Migrowanie do SQL Server w dalszej części tej serii.

W przypadku tych samouczków nie trzeba rejestrować nowej nazwy domeny. Aby zweryfikować pomyślne wdrożenie, możesz przetestować przy użyciu tymczasowego adresu URL przypisanego do witryny przez dostawcę.

Po utworzeniu konta zazwyczaj otrzymujesz powitalną wiadomość e-mail zawierającą wszystkie informacje potrzebne do wdrożenia witryny i zarządzania nią. Informacje wysyłane przez dostawcę hostingu będą podobne do pokazanych tutaj. Powitalna wiadomość e-mail cytanium, która jest wysyłana do nowych właścicieli kont, zawiera następujące informacje:

  • Adres URL witryny panelu sterowania dostawcy, w którym można zarządzać ustawieniami witryny. Podany identyfikator i hasło są zawarte w tej części powitalnej wiadomości e-mail w celu łatwego dokumentacji. (Oba zostały zmienione na wartość demonstracyjną dla tej ilustracji).

    Welcome_Email_Control_Panel_URL

  • Domyślna .NET Framework wersja i informacje o sposobie jej zmiany. Domyślnie wiele witryn hostingowych to 2.0, która współpracuje z aplikacjami ASP.NET przeznaczonymi dla .NET Framework 2.0, 3.0 lub 3.5. Jednak Contoso University jest aplikacją .NET Framework 4, więc musisz zmienić to ustawienie. (W przypadku aplikacji ASP.NET 4.5 należy użyć ustawienia .NET 4.0).

    Welcome_Email_Framework_Version

  • Tymczasowy adres URL, którego można użyć do uzyskiwania dostępu do witryny sieci Web. Po utworzeniu tego konta "contosouniversity.com" został wprowadzony jako istniejąca nazwa domeny. W związku z tym tymczasowy adres URL to http://contosouniversity.com.vserver01.cytanium.com.

    Welcome_Email_Temporary_URL

  • Informacje o sposobie konfigurowania baz danych oraz potrzebnych parametrów połączenia w celu uzyskania do nich dostępu:

    Welcome_Email_Database_Info

  • Informacje o narzędziach i ustawieniach wdrażania witryny. (Adres e-mail z Cytanium wspomina również o programie WebMatrix, który został tutaj pominięty).

    Welcome_Email_Deploy_info

Ustawianie wersji .NET Framework

Powitalna wiadomość e-mail Cytanium zawiera link do instrukcji dotyczących zmiany wersji .NET Framework. Te instrukcje wyjaśniają, że można to zrobić za pośrednictwem panelu sterowania Cytanium. Inni dostawcy mają witryny panelu sterowania, które wyglądają inaczej lub mogą instruować, aby to zrobić w inny sposób.

Przejdź do adresu URL panelu sterowania. Po zalogowaniu się przy użyciu nazwy użytkownika i hasła zostanie wyświetlony panel sterowania.

Cytanium_Control_Panel

W polu Miejsca do hostingu przytrzymaj wskaźnik nad ikoną Sieci Web i wybierz pozycję Witryny sieci Web z menu.

Cytanium_Control_Panel_selecting_Web_Sites

W polu Witryny sieci Web kliknij contosouniversity.com (nazwę witryny użytej podczas tworzenia konta).

Cytanium_Control_Panel_selecting_contosouniversity

W polu Właściwości witryny sieci Web wybierz kartę Rozszerzenia .

Cytanium_Control_Panel_Extensions_tab

Zmień ASP.NET z 2.0 Integrated Pipeline na 4.0 (Zintegrowany potok), a następnie kliknij przycisk Aktualizuj.

Publikowanie u dostawcy hostingu

Powitalna wiadomość e-mail od dostawcy hostingu zawiera wszystkie ustawienia potrzebne do opublikowania projektu i można wprowadzić te informacje ręcznie w profilu publikowania. Jednak użyjesz łatwiejszej i mniej podatnej na błędy metody konfigurowania wdrożenia u dostawcy: pobierzesz plik publishsettings i zaimportujesz go do profilu publikowania.

W przeglądarce przejdź do panelu sterowania Cytanium i wybierz pozycję Internet , a następnie wybierz pozycję Witryny internetowe.

Panel sterowania wybieranie witryn sieci Web

Wybierz witrynę sieci Web contosouniversity.com .

Panel sterowania wybieranie contosouniversity.com

Wybierz kartę Publikowanie w Internecie .

karta publikowanie w sieci Web Panel sterowania

Utwórz poświadczenia do użycia na potrzeby publikowania w Internecie, wprowadzając nazwę użytkownika i hasło. Możesz wprowadzić te same poświadczenia, których używasz do logowania się do panelu sterowania. Następnie kliknij przycisk Włącz.

Panel sterowania utworzyć poświadczenia publikowania

Kliknij pozycję Pobierz profil publikowania dla tej witryny sieci Web.

Panel sterowania pobrać profil publikowania

Po wyświetleniu monitu o otwarcie lub zapisanie pliku zapisz go.

Zapisywanie pliku profilu publikowania

W Eksplorator rozwiązań w programie Visual Studio kliknij prawym przyciskiem myszy projekt ContosoUniversity i wybierz pozycję Publikuj. Okno dialogowe Publikowanie w Sieci Web zostanie otwarte na karcie Podgląd z wybranym profilem Test , ponieważ jest to ostatni użyty profil.

Wybierz kartę Profil , a następnie kliknij pozycję Importuj.

Przycisk Importuj kreatora publikowania w sieci Web

W oknie dialogowym Importowanie ustawień publikowania wybierz pobrany plik publishsettings , a następnie kliknij przycisk Otwórz. Kreator przechodzi do karty Połączenie ze wszystkimi wypełnionymi polami.

Karta Połączenie kreatora publikacji sieci Web

Plik .publishsettings umieszcza planowany trwały adres URL witryny w polu Docelowy adres URL, ale jeśli domena nie została jeszcze zakupiona, zastąp wartość tymczasowym adresem URL. W tym przykładzie adres URL to http://contosouniversity.com.vserver01.cytanium.com Jedynym celem tego pola jest określenie adresu URL, który zostanie otwarty automatycznie po pomyślnym wdrożeniu przeglądarki. Jeśli pozostawisz to pole puste, jedyną konsekwencją jest to, że przeglądarka nie zostanie uruchomiona automatycznie po wdrożeniu.

Kliknij pozycję Zweryfikuj połączenie , aby sprawdzić, czy ustawienia są poprawne i można nawiązać połączenie z serwerem. Jak pokazano wcześniej, zielony znacznik wyboru sprawdza, czy połączenie zakończyło się pomyślnie.

Po kliknięciu pozycji Weryfikuj połączenie może zostać wyświetlone okno dialogowe Błąd certyfikatu . W takim przypadku sprawdź, czy nazwa serwera jest oczekiwana. Jeśli tak jest, wybierz pozycję Zapisz ten certyfikat dla przyszłych sesji programu Visual Studio i kliknij przycisk Akceptuj. (Ten błąd oznacza, że dostawca hostingu zdecydował się uniknąć wydatków na zakup certyfikatu SSL dla wdrażanego adresu URL. Jeśli wolisz nawiązać bezpieczne połączenie przy użyciu ważnego certyfikatu, skontaktuj się z dostawcą hostingu.

Błąd certyfikatu

Kliknij przycisk Dalej.

W sekcji Bazy danych na karcie Ustawienia wprowadź te same wartości, które zostały wprowadzone dla profilu publikowania testowego. Parametry połączenia, których potrzebujesz, znajdują się na listach rozwijanych.

  • W polu parametry połączenia dla elementu SchoolContext wybierz pozycję Data Source=|DataDirectory|School-Prod.sdf
  • W obszarze SchoolContext wybierz pozycję Zastosuj Migracje Code First.
  • W polu Parametry połączenia dla pozycji DefaultConnection wybierz pozycję Data Source=|DataDirectory|aspnet-Prod.sdf
  • W obszarze DefaultConnection pozostaw wyczyszczone pole Aktualizuj bazę danych .

Karta Ustawienia kreatora publikowania w sieci Web

Kliknij przycisk Dalej.

Na karcie Podgląd kliknij przycisk Rozpocznij podgląd , aby wyświetlić listę plików, które zostaną skopiowane. Zostanie wyświetlona ta sama lista, która została wyświetlona wcześniej podczas wdrażania w usługach IIS na komputerze lokalnym.

Przed opublikowaniem zmień nazwę profilu, aby plik przekształcenia Web.Production.config został zastosowany. Wybierz kartę Profil i kliknij pozycję Zarządzaj profilami.

Kreator publikowania sieci Web — zarządzanie profilami

W oknie dialogowym Edytowanie profilów publikowania w sieci Web wybierz profil produkcyjny, kliknij przycisk Zmień nazwę i zmień nazwę profilu na Production. Następnie kliknij przycisk Zamknij.

Okno dialogowe Edytowanie profilów publikowania w sieci Web

Kliknij przycisk Opublikuj.

Aplikacja jest publikowana u dostawcy hostingu. Wynik jest wyświetlany w oknie Dane wyjściowe .

Okno danych wyjściowych po wdrożeniu

Przeglądarka zostanie automatycznie otwarta na adres URL wprowadzony w polu Docelowy adres URL na karcie Połączenie kreatora Publikowanie sieci Web . Ta sama strona główna jest widoczna, jak w przypadku uruchamiania witryny w programie Visual Studio, z wyjątkiem tego, że na pasku tytułu nie ma wskaźnika środowiska "(Test)" ani "(Dev)". Oznacza to, że wskaźnik środowiska Web.config transformacji działa prawidłowo.

Uwaga

Jeśli w nagłówku nadal widzisz tekst "(Test)", usuń folder obj z projektu ContosoUniversity i ponownie wdróż go. W wersjach wstępnych oprogramowania wcześniej zastosowany plik transformacji (Web.Test.config) może zostać zastosowany ponownie, mimo że używasz profilu produkcyjnego.

Home_page_Prod

Przed uruchomieniem strony, która powoduje dostęp do bazy danych, upewnij się, że Elmah będzie w stanie rejestrować wszelkie błędy, które występują.

Ustawianie uprawnień folderu dla Elmah

Jak pamiętasz z poprzedniego samouczka w tej serii, musisz upewnić się, że aplikacja ma uprawnienia do zapisu dla folderu w aplikacji, w której Elmah przechowuje pliki dziennika błędów. Po wdrożeniu w usługach IIS lokalnie na komputerze należy ustawić te uprawnienia ręcznie. W tej sekcji dowiesz się, jak ustawić uprawnienia w aplikacji Cytanium. (Niektórzy dostawcy hostingu mogą tego nie umożliwić; mogą oferować co najmniej jeden wstępnie zdefiniowany folder z uprawnieniami do zapisu. W takim przypadku należy zmodyfikować aplikację tak, aby korzystała z określonych folderów).

Uprawnienia folderów można ustawić w panelu sterowania Cytanium. Przejdź do adresu URL panelu sterowania i wybierz pozycję Menedżer plików.

Cytanium_Control_Panel_with_File_Manager_selected

W menedżerze plików wybierz pozycję contosouniversity.com , a następnie pozycję wwwroot , aby wyświetlić folder główny aplikacji. Kliknij ikonę kłódki obok pozycji Elmah.

Cytanium_Control_Panel_File_Manager_at_root_folder

W oknieUprawnienia folderuplików/ zaznacz pola wyboru Odczyt i zapis dla contosouniversity.com i kliknij pozycję Ustaw uprawnienia.

Cytanium_Control_Panel_File_Folder_Permissions_Elmah

Upewnij się, że Elmah ma dostęp do zapisu do folderu Elmah , powodując błąd, a następnie wyświetlając raport o błędzie Elmah. Zażądaj nieprawidłowego adresu URL, takiego jak Studentsxxx.aspx. Tak jak wcześniej, zostanie wyświetlona strona GenericErrorPage.aspx . Kliknij link Wyloguj , a następnie uruchom polecenie Elmah.axd. Najpierw zostanie wyświetlona strona Logowania , która sprawdza, czy Web.config przekształcenie pomyślnie dodało autoryzację Elmah. Po zalogowaniu zostanie wyświetlony raport, który pokazuje właśnie spowodowany błąd.

Elmah.axd_Prod

Testowanie w środowisku produkcyjnym

Uruchom stronę Uczniowie . Aplikacja próbuje uzyskać dostęp do bazy danych School po raz pierwszy, która wyzwala Migracje Code First w celu utworzenia bazy danych. Gdy strona jest wyświetlana po chwili opóźnienia, pokazuje, że nie ma uczniów.

Students_page_Prod

Uruchom stronę Instruktorzy , aby sprawdzić, czy dane inicjujące pomyślnie wstawiły dane instruktora w bazie danych.

Instructors_page_Prod

Podobnie jak w środowisku testowym, chcesz sprawdzić, czy aktualizacje bazy danych działają w środowisku produkcyjnym, ale zazwyczaj nie chcesz wprowadzać danych testowych do produkcyjnej bazy danych. Na potrzeby tego samouczka użyjesz tej samej metody, którą wykonaliśmy w teście. Jednak w prawdziwej aplikacji warto znaleźć metodę, która sprawdza, czy aktualizacje bazy danych są skuteczne bez wprowadzania danych testowych do produkcyjnej bazy danych. W niektórych aplikacjach może być praktyczne dodanie czegoś, a następnie usunięcie go.

Dodaj ucznia, a następnie wyświetl dane wprowadzone na stronie Uczniowie , aby sprawdzić, czy możesz zaktualizować dane w bazie danych.

Add_Students_page_Prod

Students_page_with_new_student_Prod

Sprawdź, czy reguły autoryzacji działają prawidłowo, wybierając pozycję Aktualizuj środki z menu Kursy . Zostanie wyświetlona strona Logowanie . Wprowadź poświadczenia konta administratora, kliknij pozycję Zaloguj, a zostanie wyświetlona strona Środki na aktualizację .

Log_In_page_Prod

Jeśli logowanie zakończy się pomyślnie, zostanie wyświetlona strona Środki na aktualizację . Oznacza to, że baza danych członkostwa ASP.NET (z kontem pojedynczego administratora) została pomyślnie wdrożona.

Update_Credits_page_Prod

Udało Ci się pomyślnie wdrożyć i przetestować witrynę i jest ona dostępna publicznie za pośrednictwem Internetu.

Tworzenie bardziej niezawodnego środowiska testowego

Jak wyjaśniono w samouczku Wdrażanie w środowisku testowym , najbardziej niezawodne środowisko testowe będzie drugim kontem u dostawcy hostingu, który jest tak samo jak konto produkcyjne. Byłoby to droższe niż użycie lokalnych usług IIS jako środowiska testowego, ponieważ konieczne byłoby zarejestrowanie się na drugim koncie hostingu. Jeśli jednak zapobiegnie błędom lub awariom lokacji produkcyjnej, możesz zdecydować, że jest to warte kosztu.

Większość procesu tworzenia i wdrażania na koncie testowym jest podobna do tego, co zostało już zrobione w celu wdrożenia w środowisku produkcyjnym:

  • Utwórz plik przekształcenia Web.config .
  • Utwórz konto u dostawcy hostingu.
  • Utwórz nowy profil publikowania i wdróż go na koncie testowym.

Zapobieganie publicznemu dostępowi do witryny testowej

Ważną kwestią dla konta testowego jest to, że będzie ona aktywna w Internecie, ale nie chcesz, aby opinia publiczna była używana. Aby zachować prywatną witrynę, można użyć co najmniej jednej z następujących metod:

  • Skontaktuj się z dostawcą hostingu, aby ustawić reguły zapory, które zezwalają na dostęp do witryny testowej tylko z adresów IP używanych do testowania.
  • Zamaskuj adres URL, aby nie był podobny do adresu URL witryny publicznej.
  • Użyj pliku robots.txt , aby upewnić się, że wyszukiwarki nie będą przeszukiwać witryny testowej i raportować linki do niego w wynikach wyszukiwania.

Pierwsza z tych metod jest oczywiście najbezpieczniejsza, ale procedura dotycząca tego jest specyficzna dla każdego dostawcy hostingu i nie zostanie omówiona w tym samouczku. Jeśli umówisz się z dostawcą hostingu, aby zezwolić tylko twojemu adresowi IP na przejście do adresu URL konta testowego, teoretycznie nie musisz martwić się o przeszukiwanie aparatów wyszukiwania. Jednak nawet w takim przypadku wdrożenie pliku robots.txt jest dobrym pomysłem jako kopii zapasowej w przypadku przypadkowego wyłączenia reguły zapory.

Plik robots.txt jest w folderze projektu i powinien zawierać następujący tekst:

User-agent: *
Disallow: /

Wiersz User-agent informuje wyszukiwarki, że reguły w pliku mają zastosowanie do wszystkich przeszukiwarki sieci Web wyszukiwarki (roboty), a Disallow wiersz określa, że żadne strony w witrynie nie powinny być przeszukiwane.

Prawdopodobnie chcesz, aby aparaty wyszukiwania mogły katalogować witrynę produkcyjną, dlatego należy wykluczyć ten plik z wdrożenia produkcyjnego. Aby to zrobić, zobacz Czy mogę wykluczyć określone pliki lub foldery z wdrożenia? w temacie ASP.NET Wdrażanie projektu aplikacji internetowej — często zadawane pytania. Upewnij się, że określono wykluczenie tylko dla profilu publikowania produkcyjnego.

Tworzenie drugiego konta hostingu to podejście do pracy ze środowiskiem testowym, które nie jest wymagane, ale może być warte dodatkowych wydatków. W poniższych samouczkach będziesz nadal używać usług IIS jako środowiska testowego.

W następnym samouczku zaktualizujesz kod aplikacji i wdrożysz zmianę w środowiskach testowych i produkcyjnych.