ASP.NET wdrażanie w internecie przy użyciu programu Visual Studio: wprowadzenie

Autor : Tom Dykstra

Pobierz projekt startowy

W tej serii samouczków pokazano, jak wdrożyć (opublikować) aplikację internetową ASP.NET w celu Azure App Service Web Apps lub dostawcy hostingu innej firmy przy użyciu programu Visual Studio 2012 z zestawem Azure SDK dla platformy .NET. Większość procedur jest podobna do Visual Studio 2013.

Utworzysz aplikację internetową, aby udostępnić ją osobom za pośrednictwem Internetu. Jednak samouczki dotyczące programowania internetowego zwykle kończą się bezpośrednio po pokazaniu, jak coś pracować na komputerze deweloperów. Ta seria samouczków rozpoczyna się od miejsca, w którym inni odejdą: utworzyliśmy aplikację internetową, przetestowaliśmy ją i wszystko będzie gotowe do pracy. Co dalej? W tych samouczkach pokazano, jak najpierw wdrożyć usługę IIS na lokalnym komputerze deweloperskim do testowania, a następnie na platformie Azure lub dostawcy hostingu innej firmy na potrzeby przemieszczania i produkcji. Przykładowa aplikacja, którą wdrożysz, to projekt aplikacji internetowej korzystający z platformy Entity Framework, SQL Server i systemu członkostwa ASP.NET. Przykładowa aplikacja używa ASP.NET Web Forms, ale przedstawione procedury dotyczą również ASP.NET MVC i internetowego interfejsu API.

W tych samouczkach założono, że wiesz, jak pracować z ASP.NET w programie Visual Studio. Jeśli nie, dobrym miejscem do rozpoczęcia jest podstawowy samouczek ASP.NET Web Forms lub podstawowy samouczek ASP.NET MVC.

Jeśli masz pytania, które nie są bezpośrednio związane z samouczkiem, możesz opublikować je na forum wdrażania ASP.NET lub StackOverflow.

Omówienie

W tych samouczkach przedstawiono sposób wdrażania aplikacji internetowej ASP.NET zawierającej SQL Server bazy danych. Najpierw wdrożysz usługę IIS na lokalnym komputerze deweloperskim na potrzeby testowania, a następnie Web Apps w usłudze Azure App Service i Azure SQL Database na potrzeby przemieszczania i produkcji. Zobaczysz, jak wdrożyć za pomocą programu Visual Studio publikowanie jednym kliknięciem, a następnie zobaczysz, jak wdrożyć przy użyciu wiersza polecenia.

Liczba samouczków może sprawić, że proces wdrażania wydaje się zniechęcający. W rzeczywistości podstawowe procedury są proste. Jednak w rzeczywistych sytuacjach często trzeba wykonywać dodatkowe zadania wdrażania — na przykład ustawiać uprawnienia folderów na serwerze docelowym. Zilustrowaliśmy niektóre z tych dodatkowych zadań, w nadziei, że samouczki nie opuszczają informacji, które mogą uniemożliwić pomyślne wdrożenie prawdziwej aplikacji.

Samouczki są przeznaczone do uruchamiania w sekwencji, a każda część jest oparta na poprzedniej części. Możesz pominąć części, które nie są istotne w twojej sytuacji, ale może być konieczne dostosowanie procedur w kolejnych samouczkach.

Docelowi odbiorcy

Samouczki mają na celu ASP.NET deweloperów pracujących w środowiskach, w których:

  • Środowisko produkcyjne jest Azure App Service Web Apps lub dostawcą hostingu innej firmy.
  • Wdrażanie nie jest ograniczone do procesu ciągłej integracji, ale może odbywać się bezpośrednio z poziomu programu Visual Studio.

Wdrażanie z kontroli źródła przy użyciu procesu ciągłego dostarczania nie zostało omówione w tych samouczkach z wyjątkiem jednego samouczka, który pokazuje sposób wdrażania z wiersza polecenia. Aby uzyskać informacje na temat ciągłego dostarczania, zobacz następujące zasoby:

Korzystanie z dostawcy hostingu innej firmy

W samouczkach przedstawiono proces konfigurowania konta platformy Azure i wdrażania aplikacji w celu Web Apps w Azure App Service na potrzeby przemieszczania i produkcji. Można jednak użyć tych samych podstawowych procedur wdrażania do wybranego dostawcy hostingu innej firmy. W których samouczki przechodzą przez procesy unikatowe dla platformy Azure, wyjaśniają, jakie różnice można oczekiwać od dostawcy hostingu innej firmy.

Wdrażanie projektów aplikacji internetowej

Przykładowa aplikacja pobierana i wdrażana w tych samouczkach to projekt aplikacji internetowej programu Visual Studio. Jeśli jednak zainstalujesz najnowszą aktualizację publikowania w sieci Web dla programu Visual Studio, możesz użyć tych samych metod wdrażania i narzędzi dla projektów aplikacji internetowych.

Wdrażanie projektów ASP.NET MVC

Przykładowa aplikacja jest projektem ASP.NET Web Forms, ale wszystko, co dowiesz się, ma zastosowanie do ASP.NET MVC. Projekt MVC programu Visual Studio to kolejna forma projektu aplikacji internetowej. Jedyną różnicą jest to, że jeśli wdrażasz u dostawcy hostingu, który nie obsługuje ASP.NET MVC lub docelowej wersji, musisz upewnić się, że zainstalowano odpowiedni pakiet NuGet (MVC 3, MVC 4 lub MVC 5) w projekcie.

Język programowania

Przykładowa aplikacja używa języka C#, ale samouczki nie wymagają wiedzy na temat języka C#, a techniki wdrażania przedstawione w samouczkach nie są specyficzne dla języka.

Metody wdrażania bazy danych

Istnieją trzy sposoby wdrażania bazy danych SQL Server wraz z wdrażaniem internetowym w programie Visual Studio:

  • migracje Code First platformy Entity Framework
  • Dostawca web deploy dbDacFx
  • Dostawca dbFullSql Web Deploy

W tym samouczku użyjesz dwóch pierwszych z tych metod. Dostawca dbFullSql Web Deploy to starsza metoda, która nie jest już zalecana, z wyjątkiem niektórych konkretnych scenariuszy, takich jak migracja z SQL Server Compact do SQL Server.

Metody przedstawione w tym samouczku dotyczą SQL Server baz danych, a nie SQL Server Compact. Aby uzyskać informacje na temat wdrażania bazy danych SQL Server Compact, zobacz Temat Wdrażanie w sieci Web programu Visual Studio za pomocą SQL Server Compact.

Metody przedstawione w tym samouczku wymagają użycia metody publikowania narzędzia Web Deploy. Jeśli wolisz inną metodę publikowania, taką jak FTP, System plików lub FPE, zobacz Wdrażanie bazy danych niezależnie od wdrożenia aplikacji internetowej w mapie zawartości wdrażania sieci Web dla programu Visual Studio i ASP.NET.

migracje Code First platformy Entity Framework

W programie Entity Framework w wersji 4.3 firma Microsoft wprowadziła Migracje Code First. Migracje Code First automatyzuje proces wprowadzania przyrostowych zmian w modelu danych i propagowania tych zmian w bazie danych. We wcześniejszych wersjach programu Code First zwykle pozwalasz na usunięcie i ponowne utworzenie bazy danych przy każdej zmianie modelu danych. Nie jest to problem podczas programowania, ponieważ dane testowe są łatwo tworzone ponownie, ale w środowisku produkcyjnym zwykle chcesz zaktualizować schemat bazy danych bez porzucania bazy danych. Funkcja Migracje umożliwia programowi Code First aktualizowanie bazy danych bez usuwania i ponownego tworzenia. Możesz zezwolić kodowi Code First automatycznie zdecydować, jak wprowadzić wymagane zmiany schematu lub napisać kod, który dostosowuje zmiany. Aby zapoznać się z wprowadzeniem do Migracje Code First, zobacz Migracje Code First.

Podczas wdrażania projektu internetowego program Visual Studio może zautomatyzować proces wdrażania bazy danych zarządzanej przez Migracje Code First. Podczas tworzenia profilu publikowania należy zaznaczyć pole wyboru z etykietą Wykonaj Migracje Code First (działa na początku aplikacji). To ustawienie powoduje, że proces wdrażania automatycznie konfiguruje aplikację Web.config pliku na serwerze docelowym, tak aby kod Pierwszy używał klasy inicjatora MigrateDatabaseToLatestVersion .

Program Visual Studio nie wykonuje żadnych czynności z bazą danych podczas procesu wdrażania. Gdy wdrożona aplikacja uzyskuje dostęp do bazy danych po raz pierwszy po wdrożeniu, program Code First automatycznie tworzy bazę danych lub aktualizuje schemat bazy danych do najnowszej wersji. Jeśli aplikacja implementuje metodę Migrations Seed, metoda jest uruchamiana po utworzeniu bazy danych lub zostanie zaktualizowany schemat.

W tym samouczku użyjesz Migracje Code First do wdrożenia bazy danych aplikacji.

Dostawca web deploy dbDacFx

W przypadku bazy danych SQL Server, która nie jest zarządzana przez program Entity Framework Code First, można zaznaczyć pole wyboru z etykietą Aktualizuj bazę danych podczas konfigurowania profilu publikowania. Podczas początkowego wdrażania dostawca dbDacFx tworzy tabele i inne obiekty bazy danych w docelowej bazie danych w celu dopasowania do źródłowej bazy danych. W kolejnych wdrożeniach dostawca określa, co różni się między źródłowymi i docelowymi bazami danych, i aktualizuje schemat docelowej bazy danych w celu dopasowania do źródłowej bazy danych. Domyślnie dostawca nie wprowadza żadnych zmian, które powodują utratę danych, na przykład gdy tabela lub kolumna zostanie porzucona.

Ta metoda nie automatyzuje wdrażania danych w tabelach bazy danych, ale można utworzyć skrypty, aby to zrobić, i skonfigurować program Visual Studio do uruchamiania ich podczas wdrażania. Innym powodem uruchamiania skryptów podczas wdrażania jest wprowadzenie zmian schematu, których nie można wykonać automatycznie, ponieważ spowoduje to utratę danych.

W tym samouczku użyjesz dostawcy dbDacFx do wdrożenia bazy danych członkostwa ASP.NET.

Rozwiązywanie problemów podczas pracy z tym samouczkiem

Jeśli podczas wdrażania wystąpi błąd lub jeśli wdrożona lokacja nie jest uruchomiona poprawnie, komunikaty o błędach nie zawsze zapewniają oczywiste rozwiązanie. Aby ułatwić rozwiązywanie typowych scenariuszy problemów, dostępna jest strona referencyjna rozwiązywania problemów . Jeśli zostanie wyświetlony komunikat o błędzie lub coś nie działa w miarę przechodzenia przez samouczki, sprawdź stronę rozwiązywania problemów.

Komentarze mile widziane

Komentarze dotyczące samouczków są mile widziane, a gdy samouczek zostanie zaktualizowany, wszelkie działania zostaną wykonane w celu uwzględnienia poprawek lub sugestii dotyczących ulepszeń dostępnych w komentarzach samouczka.

Wymagania wstępne

Ten samouczek został napisany dla następujących produktów:

Możesz skorzystać z samouczka, korzystając z programu Visual Studio 2010 SP1 lub Visual Studio 2013, ale niektóre zrzuty ekranu będą różne, a niektóre funkcje będą inne.

Jeśli używasz Visual Studio 2013, zainstaluj zestaw Azure SDK dla Visual Studio 2013.

Jeśli używasz programu Visual Studio 2010 SP1, zainstaluj następujące oprogramowanie:

W zależności od liczby zależności zestawu SDK, które już masz na maszynie, zainstalowanie zestawu Azure SDK może zająć dużo czasu, od kilku minut do pół godziny lub więcej. Potrzebujesz zestawu Azure SDK, nawet jeśli planujesz publikowanie u innego dostawcy hostingu zamiast na platformie Azure, ponieważ zestaw SDK zawiera najnowsze aktualizacje funkcji publikowania w internecie programu Visual Studio.

Uwaga

Ten samouczek został napisany przy użyciu wersji 1.8.1 zestawu Azure SDK. Od tego czasu wydano nowsze wersje z dodatkowymi funkcjami. Samouczki zostały zaktualizowane, aby wspomnieć o tych funkcjach i połączyć się z zasobami, które zawierają więcej informacji o nich.

Instrukcje i zrzuty ekranu są oparte na Windows 8, ale samouczki wyjaśniają różnice w systemie Windows 7.

Aby ukończyć samouczek, wymagane jest inne oprogramowanie, ale nie musisz mieć jeszcze zainstalowanego oprogramowania. Samouczek przeprowadzi Cię przez kroki instalowania go w razie potrzeby.

Pobieranie przykładowej aplikacji

Wdrożona aplikacja nosi nazwę Contoso University i została już utworzona. Jest to uproszczona wersja witryny internetowej uniwersytetu, luźno oparta na aplikacji Contoso University opisanej w samouczkach platformy Entity Framework w witrynie ASP.NET.

Po zainstalowaniu wymagań wstępnych pobierz aplikację internetową Contoso University. Plik .zip zawiera wiele wersji projektu. Aby wykonać kroki samouczka, zacznij od projektu znajdującego się w folderze C#. Aby zobaczyć, jak wygląda projekt na końcu samouczków, otwórz projekt w folderze ContosoUniversity-End.

Aby przygotować projekt do pracy z krokami samouczka, wykonaj następujące kroki:

  1. Zapisz pliki rozwiązania ContosoUniversity z folderu C# w folderze o nazwie ContosoUniversity w dowolnym folderze używanym do pracy z projektami programu Visual Studio.

    Domyślnie jest to następujący folder dla programu Visual Studio 2012:

    C:\Users\<username>\Documents\Visual Studio 2012\Projects

    (Zrzuty ekranu w tym samouczku znajdują się w katalogu głównym na Cdysku :).

  2. Uruchom program Visual Studio i otwórz projekt.

  3. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy rozwiązanie i kliknij polecenie EnableNuGet Package Restore (WłączNuGet package Restore).

  4. Skompiluj rozwiązanie.

  5. Jeśli wystąpią błędy kompilacji, ręcznie przywróć pakiety NuGet:

    1. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy rozwiązanie, a następnie kliknij polecenie Zarządzaj pakietami NuGet dla rozwiązania.
    2. W górnej części okna dialogowego Zarządzanie pakietami NuGet zobaczysz , że w tym rozwiązaniu brakuje niektórych pakietów NuGet. Kliknij, aby przywrócić. Kliknij przycisk Przywróć .
    3. Ponownie skompiluj rozwiązanie.
  6. Naciśnij klawisze CTRL-F5, aby uruchomić aplikację.

    Aplikacja zostanie otwarta na stronie głównej Contoso University.

    Tworzenie strony głównej

    (Może wystąpić czas oczekiwania podczas uruchamiania wystąpienia usługi SQL Server Express LocalDB przez program Visual Studio i może wystąpić błąd przekroczenia limitu czasu, jeśli ten proces trwa zbyt długo. W takim przypadku po prostu ponownie uruchom projekt).

Strony witryny internetowej są dostępne na pasku menu i umożliwiają wykonywanie następujących funkcji:

  • Wyświetl statystyki uczniów (strona Informacje).
  • Wyświetlanie, edytowanie, usuwanie i dodawanie uczniów.
  • Wyświetlanie i edytowanie kursów.
  • Wyświetlanie i edytowanie instruktorów.
  • Wyświetlanie i edytowanie działów.

Poniżej przedstawiono zrzuty ekranu kilku reprezentatywnych stron.

Tworzenie strony uczniów

Dodawanie dewelopera strony uczniów

Przegląd funkcji aplikacji mających wpływ na wdrożenie

Następujące funkcje aplikacji wpływają na sposób wdrażania aplikacji lub czynności, które należy wykonać, aby ją wdrożyć. Każdy z nich został szczegółowo opisany w poniższych samouczkach z serii.

  • Firma Contoso University używa bazy danych SQL Server do przechowywania danych aplikacji, takich jak nazwy uczniów i instruktorów. Baza danych zawiera mieszankę danych testowych i danych produkcyjnych, a podczas wdrażania w środowisku produkcyjnym należy wykluczyć dane testowe.
  • Aplikacja używa systemu członkostwa ASP.NET, który przechowuje informacje o koncie użytkownika w bazie danych SQL Server. Aplikacja definiuje użytkownika administratora, który ma dostęp do niektórych ograniczonych informacji. Musisz wdrożyć bazę danych członkostwa bez kont testowych, ale przy użyciu konta administratora.
  • Aplikacja używa narzędzia do rejestrowania błędów i raportowania innych firm. To narzędzie jest udostępniane w zestawie, który musi zostać wdrożony z aplikacją.
  • Narzędzie rejestrowania błędów zapisuje informacje o błędach w plikach XML w folderze plików. Musisz upewnić się, że konto, które ASP.NET działa w ramach wdrożonej witryny, ma uprawnienia do zapisu w tym folderze i musisz wykluczyć ten folder z wdrożenia. (W przeciwnym razie dane dziennika błędów ze środowiska testowego mogą zostać wdrożone w plikach dziennika błędów produkcyjnych i/lub produkcyjnych).
  • Aplikacja zawiera niektóre ustawienia, które należy zmienić w wdrożonym pliku Web.config w zależności od środowiska docelowego (test, przemieszczanie lub produkcja) oraz inne ustawienia, które należy zmienić w zależności od konfiguracji kompilacji (debugowanie lub wydanie).
  • Rozwiązanie programu Visual Studio zawiera projekt biblioteki klas. Należy wdrożyć tylko zestaw wygenerowany przez ten projekt, a nie sam projekt.

Podsumowanie

W tym pierwszym samouczku z serii pobrano przykładowy projekt programu Visual Studio i przejrzeno funkcje witryny wpływające na sposób wdrażania aplikacji. W poniższych samouczkach przygotujesz się do wdrożenia, konfigurując niektóre z tych rzeczy do obsługi automatycznie. Inne osoby, które zajmują się ręcznie.