ASP.NET wdrażanie w sieci Web przy użyciu programu Visual Studio: wdrażanie w teście

Autor : Tom Dykstra

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 2017. Aby uzyskać informacje o serii, zobacz pierwszy samouczek z serii.

Aby uzyskać bieżącą wersję wdrażania na platformie Azure, zobacz Tworzenie aplikacji internetowej ASP.NET Core na platformie Azure.

Omówienie

W tym samouczku wdrożysz aplikację internetową ASP.NET na serwerze informacji internetowych (IIS) na komputerze lokalnym.

Ogólnie rzecz biorąc podczas tworzenia aplikacji uruchamiasz ją i testujesz ją w programie Visual Studio. Domyślnie projekty aplikacji internetowych w programie Visual Studio 2017 używają IIS Express jako serwera internetowego programistycznego. IIS Express zachowuje się bardziej jak pełne usługi IIS niż program Visual Studio Development Server (znany również jako Cassini), którego program Visual Studio 2017 używa domyślnie. Jednak żaden z serwerów internetowych programistycznych nie działa dokładnie tak jak usługi IIS. W związku z tym aplikacja może działać i testować poprawnie w programie Visual Studio, ale nie powiedzie się, gdy zostanie wdrożona w usługach IIS.

Aplikację można niezawodnie przetestować na dwa sposoby:

  1. Wdróż aplikację w usługach IIS na komputerze deweloperskim przy użyciu tego samego procesu, którego użyjesz później do wdrożenia w środowisku produkcyjnym.

    Program Visual Studio można skonfigurować tak, aby używał usług IIS podczas uruchamiania projektu internetowego, ale nie przetestowałoby to procesu wdrażania. Ta metoda weryfikuje proces wdrażania i że aplikacja działa poprawnie w obszarze IIS.

  2. Wdróż aplikację w środowisku testowym podobnym do środowiska produkcyjnego.

    Środowisko produkcyjne dla tych samouczków jest Web Apps w Azure App Service. Idealne środowisko testowe to dodatkowa aplikacja internetowa utworzona w usłudze platformy Azure. Mimo że będzie ona skonfigurowana tak samo jak produkcyjna aplikacja internetowa, można jej używać tylko do testowania.

Opcja 2 to najbardziej niezawodny sposób testowania. Jeśli używasz opcji 2, nie musisz używać opcji 1. Jeśli jednak wdrażasz dostawcę hostingu innej firmy, opcja 2 może nie być wykonalna lub może być kosztowna, więc w tej serii samouczków przedstawiono obie metody. Wskazówki dotyczące opcji 2 podano w samouczku Wdrażanie w środowisku produkcyjnym .

Aby uzyskać więcej informacji na temat używania serwerów internetowych w programie Visual Studio, zobacz Serwery sieci Web w programie Visual Studio dla projektów sieci Web ASP.NET.

Przypomnienie: Jeśli zostanie wyświetlony komunikat o błędzie lub coś nie działa w miarę przechodzenia przez samouczek, sprawdź stronę rozwiązywania problemów.

Pobieranie projektu startowego uniwersytetu Contoso University

Pobierz i zainstaluj rozwiązanie startowe i projekt programu Contoso University Visual Studio. To rozwiązanie zawiera ukończony samouczek.

Pobierz projekt startowy

Instalowanie usług IIS

Aby wdrożyć usługę IIS na komputerze dewelopera, upewnij się, że usługi IIS i Web Deploy są zainstalowane. Domyślnie program Visual Studio instaluje narzędzie Web Deploy, ale usługi IIS nie są uwzględniane w domyślnej konfiguracji Windows 10, Windows 8 lub Windows 7. Jeśli masz już zainstalowane usługi IIS, a domyślna pula aplikacji jest już ustawiona na platformę .NET 4, przejdź do następnej sekcji.

  1. Zaleca się użycie Instalatora platformy internetowej (WPI) do zainstalowania usług IIS i Web Deploy. WPI instaluje zalecaną konfigurację usług IIS, która obejmuje wymagania wstępne dotyczące usług IIS i Web Deploy w razie potrzeby.

    Jeśli masz już zainstalowane usługi IIS, Web Deploy lub dowolne z wymaganych składników, interfejs WPI instaluje tylko brakujące składniki.

    • Zainstaluj usługi IIS i web deploy za pomocą Instalatora platformy sieci Web:

      Instalowanie usług IIS przy użyciu interfejsu WPI

      Instalowanie narzędzia Web Deploy przy użyciu interfejsu WPI

      Zostaną wyświetlone komunikaty wskazujące, że zostaną zainstalowane usługi IIS 7. Link działa dla usług IIS 8 w Windows 8, ale w przypadku Windows 8 i nowszych wykonaj następujące kroki, aby upewnić się, że ASP.NET 4.7 jest zainstalowany:

    • Otwórz Panel sterowania>ProgramyProgramy>i funkcje>Włącz lub wyłącz funkcje systemu Windows.

    • Rozwiń pozycje Internet Information Services, World Wide Web Services i Application Development Features( Funkcje tworzenia aplikacji).

    • Upewnij się, że wybrano ASP.NET 4.7 .

      Wybierz ASP.NET 4.7

    • Upewnij się, że wybrano usługę World Wide Web ikonsolę zarządzania usługami IIS . Spowoduje to zainstalowanie usług IIS i Menedżera usług IIS.

      Wybierz pozycję World Wide Web Services

    • Wybierz przycisk OK. Wyświetlane są komunikaty okna dialogowego wskazujące, że trwa instalacja.

Po zainstalowaniu usług IIS uruchom Menedżera usług IIS, aby upewnić się, że .NET Framework w wersji 4 jest przypisana do domyślnej puli aplikacji.

  1. Naciśnij klawisze WINDOWS+R, aby otworzyć okno dialogowe Uruchamianie .

    (W Windows 8 lub nowszym wprowadź "uruchom" na stronie Start. W systemie Windows 7 wybierz pozycję Uruchom z menu Start. Jeśli polecenie Uruchom nie znajduje się w menu Start, kliknij prawym przyciskiem myszy pasek zadań, wybierz polecenie Właściwości, wybierz kartę Menu Start, wybierz pozycję Dostosuj i wybierz polecenie Uruchom.

  2. Wprowadź ciąg "inetmgr" i wybierz przycisk OK.

  3. W okienku Connections rozwiń węzeł serwera i wybierz pozycję Pule aplikacji. W okienku Pule aplikacji , jeśli Pula aplikacji DefaultAppPool jest przypisana do platformy .NET Framework w wersji 4, jak na poniższej ilustracji, przejdź do następnej sekcji.

    Inetmgr_showing_4.0_app_pools

  4. Jeśli widzisz tylko dwie pule aplikacji i obie są ustawione na .NET Framework 2.0, zainstaluj ASP.NET 4 w usługach IIS.

    Aby uzyskać Windows 8 lub nowsze, zapoznaj się z instrukcjami poprzedniej sekcji, aby upewnić się, że ASP.NET 4.7 jest zainstalowana lub zobacz Jak zainstalować ASP.NET 4.5 w Windows 8 i Windows Server 2012. W systemie Windows 7 otwórz okno wiersza polecenia, klikając prawym przyciskiem myszy wiersz polecenia w menu Start systemu Windows i wybierając polecenie Uruchom jako administrator. Uruchom aspnet_regiis.exe , aby zainstalować ASP.NET 4 w usługach IIS przy użyciu następujących poleceń. (W systemach 32-bitowych zastąp ciąg "Framework64" ciągiem "Framework".

    cd %windir%\Microsoft.NET\Framework64\v4.0.30319
    aspnet_regiis.exe –i
    

    To polecenie tworzy nowe pule aplikacji dla .NET Framework 4, ale domyślna pula aplikacji pozostanie ustawiona na 2.0. Wdrażasz aplikację przeznaczoną dla platformy .NET 4 w tej puli aplikacji, dlatego zmień pulę aplikacji na .NET 4.

  5. Jeśli menedżer usług IIS został zamknięty, uruchom go ponownie, rozwiń węzeł serwera i wybierz pozycję Pule aplikacji.

  6. W okienku Pule aplikacji wybierz pozycję DefaultAppPool. W okienku Akcje wybierz pozycję Ustawienia podstawowe.

    Inetmgr_selecting_Basic_Settings_for_app_pool

  7. W oknie dialogowym Edytowanie puli aplikacji zmień wersję środowiska CLR platformy .NET na .NET CLR w wersji 4.0.30319. Wybierz przycisk OK.

    Selecting_.NET_4_for_DefaultAppPool

Teraz możesz opublikować aplikację internetową w usługach IIS. Najpierw należy jednak utworzyć bazy danych na potrzeby testowania.

Instalowanie SQL Server Express

Baza danych LocalDB nie jest przeznaczona do pracy w usługach IIS, więc środowisko testowe musi mieć zainstalowane SQL Server Express. Jeśli używasz programu Visual Studio 2010 SQL Server Express, jest on już zainstalowany domyślnie. Jeśli używasz programu Visual Studio 2012 lub nowszego, zainstaluj SQL Server Express.

Aby zainstalować SQL Server Express, pobierz ją i zainstaluj z Centrum pobierania: Microsoft SQL Server 2017 Express Edition.

Na pierwszej stronie centrum instalacji SQL Server wybierz pozycję Nowa instalacja autonomiczna SQL Server lub dodaj funkcje do istniejącej instalacji i postępuj zgodnie z instrukcjami akceptującymi opcje domyślne. W kreatorze instalacji zaakceptuj ustawienia domyślne. Aby uzyskać więcej informacji na temat opcji instalacji, zobacz Instalowanie SQL Server z Kreatora instalacji (Instalator).

Tworzenie baz danych SQL Server Express dla środowiska testowego

Aplikacja Contoso University ma dwie bazy danych:

  1. Baza danych członkostwa
  2. Baza danych aplikacji

Te bazy danych można wdrożyć w dwóch oddzielnych bazach danych lub w jednej bazie danych. Łączenie ich sprawia, że sprzężenia bazy danych między nimi są łatwiejsze.

Jeśli wdrażasz dostawcę hostingu innej firmy, twój plan hostingu może również dać powód, aby je połączyć. Na przykład dostawca może pobierać więcej opłat za wiele baz danych lub nawet nie zezwalać na więcej niż jedną bazę danych.

W tym samouczku wdrożysz dwie bazy danych w środowisku testowym i do jednej bazy danych w środowiskach przejściowych i produkcyjnych.

W menu Widok w programie Visual Studio wybierz pozycję Eksplorator serwera (Eksplorator bazy danych w programie Visual Web Developer). Kliknij prawym przyciskiem myszy pozycję Dane Connections i wybierz pozycję Utwórz nową bazę danych SQL Server.

Selecting_Create_New_SQL_Server_Database

W oknie dialogowym Tworzenie nowej bazy danych SQL Server wprowadź ciąg ".\SQLExpress" w polu Nazwa serwera i "aspnet-ContosoUniversity" w polu Nowa nazwa bazy danych. Wybierz przycisk OK.

Tworzenie aplikacji aspnet-ContosoUniversity

Wykonaj tę samą procedurę, aby utworzyć nową bazę danych SQL Server Express School o nazwie ContosoUniversity.

W Eksploratorze serwera są wyświetlane dwie nowe bazy danych.

Nowe bazy danych w Eksploratorze serwera

Tworzenie skryptu udzielania dla nowych baz danych

Gdy aplikacja działa w usługach IIS na komputerze deweloperskim, aplikacja używa poświadczeń domyślnej puli aplikacji w celu uzyskania dostępu do bazy danych. Jednak domyślnie pula aplikacji nie ma uprawnień do otwierania baz danych. Oznacza to, że musisz uruchomić skrypt, aby udzielić tego uprawnienia. W tej sekcji utworzysz ten skrypt i uruchomisz go później, aby upewnić się, że aplikacja może otwierać bazy danych po uruchomieniu w usługach IIS.

W edytorze tekstów skopiuj następujące polecenia SQL do nowego pliku i zapisz je jako Grant.sql.

IF NOT EXISTS (SELECT name FROM sys.server_principals WHERE name = 'IIS APPPOOL\DefaultAppPool')
BEGIN
    CREATE LOGIN [IIS APPPOOL\DefaultAppPool] 
      FROM WINDOWS WITH DEFAULT_DATABASE=[master], 
      DEFAULT_LANGUAGE=[us_english]
END
GO
CREATE USER [ContosoUniversityUser] 
  FOR LOGIN [IIS APPPOOL\DefaultAppPool]
GO
EXEC sp_addrolemember 'db_owner', 'ContosoUniversityUser'
GO

W programie Visual Studio otwórz rozwiązanie Contoso University. Kliknij rozwiązanie prawym przyciskiem myszy (nie jeden z projektów), a następnie wybierz pozycję Dodaj. Wybierz pozycję Istniejący element, przejdź do Grant.sql i otwórz go.

Uwaga

Ten skrypt jest przeznaczony do pracy z SQL Server Express 2012 lub nowszym oraz z ustawieniami usług IIS w Windows 10, Windows 8 lub Windows 7, jak określono w tym samouczku. Jeśli używasz innej wersji programu SQL Server lub Windows lub jeśli usługi IIS są skonfigurowane na komputerze inaczej, mogą być wymagane zmiany tego skryptu. Aby uzyskać więcej informacji na temat skryptów SQL Server, zobacz SQL Server Books Online.

Uwaga

Uwaga dotycząca zabezpieczeń Ten skrypt daje db_owner uprawnienia użytkownikowi, który uzyskuje dostęp do bazy danych w czasie wykonywania, co jest tym, co będziesz mieć w środowisku produkcyjnym. W niektórych scenariuszach można określić użytkownika z pełnymi uprawnieniami aktualizacji schematu bazy danych tylko do wdrożenia i określić dla czasu wykonywania innego użytkownika, który ma uprawnienia tylko do odczytu i zapisu danych. Aby uzyskać więcej informacji, zobacz Przeglądanie zmian automatycznego Web.config dla Migracje Code First w dalszej części tego samouczka.

Uruchamianie skryptu udzielania w bazie danych aplikacji

Profil publikowania można skonfigurować do uruchamiania skryptu udzielania w bazie danych członkostwa podczas wdrażania, ponieważ to wdrożenie bazy danych używa dostawcy dbDacFx . Nie można uruchamiać skryptów podczas wdrażania Migracje Code First, czyli sposobu wdrażania bazy danych aplikacji. Oznacza to, że należy ręcznie uruchomić skrypt przed wdrożeniem w bazie danych aplikacji.

  1. W programie Visual Studio otwórz utworzony wcześniej plik Grant.sql .

  2. Wybierz pozycję Połącz.

    Przycisk Połącz

  3. W oknie dialogowym Łączenie z serwerem wprowadź ciąg .\SQLExpress jako nazwę serwera. Wybierz pozycję Połącz.

  4. Z listy rozwijanej bazy danych wybierz pozycję ContosoUniversity. Wybierz pozycję Wykonaj.

    Z listy rozwijanej bazy danych wybierz pozycję ContosoUniversity. Wybierz pozycję Wykonaj.

Domyślna tożsamość puli aplikacji ma teraz wystarczające uprawnienia w bazie danych aplikacji dla Migracje Code First, aby utworzyć tabele bazy danych po uruchomieniu aplikacji.

Publikowanie w usługach IIS

Istnieje kilka sposobów wdrażania w usługach IIS przy użyciu programu Visual Studio i narzędzia Web Deploy:

  • Użyj programu Visual Studio jednym kliknięciem, aby opublikować.
  • Opublikuj z poziomu wiersza polecenia.
  • Utwórz pakiet wdrożeniowy i zainstaluj go przy użyciu Menedżera usług IIS. Pakiet zawiera plik .zip ze wszystkimi plikami i metadanymi wymaganymi do zainstalowania lokacji w usługach IIS.
  • Utwórz pakiet wdrożeniowy i zainstaluj go przy użyciu wiersza polecenia.

Proces opisany w poprzednich samouczkach dotyczący konfigurowania programu Visual Studio w celu zautomatyzowania zadań wdrażania dotyczy wszystkich tych metod. W tych samouczkach użyjesz dwóch pierwszych metod. Aby uzyskać informacje na temat korzystania z pakietów wdrożeniowych, zobacz Wdrażanie aplikacji internetowej przez utworzenie i zainstalowanie pakietu wdrożeniowego w sieci Web w mapie zawartości wdrożenia sieci Web dla programu Visual Studio i ASP.NET.

Przed opublikowaniem upewnij się, że używasz programu Visual Studio w trybie administratora. Jeśli nie widzisz (Administrator) na pasku tytułu, zamknij program Visual Studio. Na stronie startowej Windows 8 (lub nowszej) lub menu Start systemu Windows 7 kliknij prawym przyciskiem myszy ikonę programu Visual Studio i wybierz polecenie Uruchom jako administrator. Tryb administratora jest wymagany tylko do publikowania podczas publikowania w usługach IIS na komputerze lokalnym.

Tworzenie profilu publikowania

  1. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy projekt ContosoUniversity (a nie projekt ContosoUniversity.DAL). Kliknij pozycję Opublikuj. Zostanie wyświetlona strona Publikowanie .

  2. Wybierz pozycję Nowy profil. Zostanie wyświetlone okno dialogowe Wybierz element docelowy publikowania .

  3. Wybierz pozycję IIS, FTP itp. Wybierz pozycję Utwórz profil. Zostanie wyświetlony kreator publikowania .

    Karta Profil kreatora publikowania sieci Web

  4. Z menu rozwijanego Metoda publikowania wybierz pozycję Web Deploy.

  5. W polu Serwer wprowadź wartość localhost.

  6. W polu Nazwa witryny wprowadź wartość Domyślna witryna sieci Web/ContosoUniversity.

  7. W polu Docelowy adres URL wprowadź wartość http://localhost/ContosoUniversity.

    Ustawienie Docelowego adresu URL nie jest wymagane. Po zakończeniu wdrażania aplikacji program Visual Studio automatycznie otwiera domyślną przeglądarkę pod tym adresem URL. Jeśli nie chcesz, aby przeglądarka otwierała się automatycznie po wdrożeniu, pozostaw to pole puste.

  8. Wybierz pozycję Zweryfikuj połączenie , aby sprawdzić, czy ustawienia są poprawne i możesz nawiązać połączenie z usługami IIS na komputerze lokalnym.

    Zielony znacznik wyboru sprawdza, czy połączenie zakończyło się pomyślnie.

    Karta Połączenie kreatora publikacji sieci Web

  9. Wybierz przycisk Dalej , aby przejść do karty Ustawienia .

  10. Pole listy rozwijanej Konfiguracja określa konfigurację kompilacji do wdrożenia. Pozostaw wartość domyślną wydania. Nie będziesz wdrażać kompilacji debugowania w tym samouczku.

  11. Rozwiń pozycję Opcje publikowania pliku. Wybierz pozycję Wyklucz pliki z folderu App_Data.

    W środowisku testowym aplikacja uzyskuje dostęp do baz danych utworzonych w lokalnym wystąpieniu SQL Server Express, a nie plików .mdf w folderze App_Data.

  12. Pozostaw wyczyszczone pola wyboru Prekompiluj podczas publikowania i Usuń dodatkowe pliki w miejscu docelowym .

    Opcje publikowania plików na karcie Ustawienia

    Wstępna kompilacja to opcja, która jest przydatna głównie w przypadku dużych lokacji. Może skrócić czas uruchamiania przy pierwszym żądaniu strony po opublikowaniu witryny.

    Nie musisz usuwać dodatkowych plików, ponieważ jest to pierwsze wdrożenie i nie będzie jeszcze żadnych plików w folderze docelowym.

    Uwaga

    W przypadku wybrania opcji Usuń dodatkowe pliki w miejscu docelowym dla kolejnego wdrożenia w tej samej witrynie upewnij się, że używasz funkcji w wersji zapoznawczej, aby zobaczyć z wyprzedzeniem, które pliki zostaną usunięte przed wdrożeniem. Oczekiwane zachowanie polega na tym, że narzędzie Web Deploy usunie pliki na serwerze docelowym, który został usunięty w projekcie. Jednak cała struktura folderów w folderach źródłowych i docelowych jest porównywana; w niektórych scenariuszach narzędzie Web Deploy może usuwać pliki, których nie chcesz usuwać.

    Jeśli na przykład masz aplikację internetową w podfolderze na serwerze podczas wdrażania projektu w folderze głównym, podfolder zostanie usunięty. Może istnieć jeden projekt dla witryny głównej w contoso.com i inny projekt dla bloga w witrynie contoso.com/blog. Aplikacja blogu znajduje się w podfolderze. W przypadku wybrania opcji Usuń dodatkowe pliki w miejscu docelowym podczas wdrażania lokacji głównej aplikacja blogu zostanie usunięta.

    W innym przykładzie folder App_Data może zostać nieoczekiwanie usunięty. Niektóre bazy danych, takie jak SQL Server Compact przechowywać pliki bazy danych w folderze App_Data. Po początkowym wdrożeniu nie chcesz kopiować plików bazy danych w kolejnych wdrożeniach, dlatego wybierz pozycję Wyklucz App_Data na karcie Pakiet/Publikowanie w sieci Web. Po wykonaniu tej czynności w przypadku wybrania opcji Usuń dodatkowe pliki w miejscu docelowym pliki bazy danych i sam folder App_Data zostaną usunięte przy następnym opublikowaniu.

Konfigurowanie wdrożenia dla bazy danych członkostwa

Poniższe kroki dotyczą bazy danych DefaultConnection w sekcji Bazy danych okna dialogowego.

  1. W polu Zdalne parametry połączenia wprowadź następujące parametry połączenia, które wskazuje nową bazę danych członkostwa SQL Server Express.

    Data Source=.\SQLExpress;Initial Catalog=aspnet-ContosoUniversity;Integrated Security=True
    

    Proces wdrażania umieszcza ten parametry połączenia we wdrożonym pliku Web.config, ponieważ wybrano opcję Użyj tego parametry połączenia w czasie wykonywania.

    Możesz również pobrać parametry połączenia z Eksploratora serwera. W Eksploratorze serwera rozwiń węzeł Dane Connections i wybierz <bazę danych machinename>\sqlexpress.aspnet-ContosoUniversity, a następnie w oknie Właściwości skopiuj wartość Parametry połączenia. To parametry połączenia będzie miało jedno dodatkowe ustawienie, które można usunąć: Pooling=False.

  2. Wybierz pozycję Aktualizuj bazę danych.

    Powoduje to utworzenie schematu bazy danych w docelowej bazie danych podczas wdrażania. W następnych krokach należy określić dodatkowe skrypty, które należy uruchomić: jeden w celu udzielenia dostępu do bazy danych domyślnej puli aplikacji i jeden do wdrożenia danych.

  3. Wybierz pozycję Konfiguruj aktualizacje bazy danych.

  4. W oknie dialogowym Konfigurowanie Aktualizacje bazy danych wybierz pozycję Dodaj skrypt SQL. Przejdź do skryptu Grant.sql zapisanego wcześniej w folderze rozwiązania.

  5. Powtórz ten proces, aby dodać skrypt aspnet-data-dev.sql .

    Konfigurowanie Aktualizacje bazy danych dla członkostwa

  6. Wybierz pozycję Zamknij.

Konfigurowanie wdrożenia dla bazy danych aplikacji

Gdy program Visual Studio wykryje klasę Programu Entity FrameworkDbContext, tworzy wpis w sekcji Bazy danych z polem wyboru Wykonaj Migracje Code First zamiast aktualizacji bazy danych pole wyboru. W tym samouczku użyjesz tego pola wyboru, aby określić Migracje Code First wdrożenie.

W niektórych scenariuszach możesz użyć DbContext bazy danych, ale chcesz użyć dostawcy dbDacFx zamiast migracji do wdrożenia bazy danych. W takim przypadku zobacz Jak mogę wdrożyć bazę danych Code First bez migracji? w często zadawanych pytaniach dotyczących wdrażania w sieci Web ASP.NET w witrynie MSDN.

Poniższe kroki dotyczą bazy danych SchoolContext w sekcji Bazy danych okna dialogowego.

  1. W polu Zdalne parametry połączenia wprowadź następujące parametry połączenia, które wskazuje nową bazę danych aplikacji SQL Server Express.

    Data Source=.\SQLExpress;Initial Catalog=ContosoUniversity;Integrated Security=True
    

    Proces wdrażania umieszcza ten parametry połączenia we wdrożonym pliku Web.config, ponieważ wybrano opcję Użyj tego parametry połączenia w czasie wykonywania.

    Bazę danych aplikacji można również uzyskać parametry połączenia z Eksploratora serwera w taki sam sposób, jak baza danych członkostwa parametry połączenia.

  2. Wybierz pozycję Wykonaj Migracje Code First (uruchamiane przy uruchomieniu aplikacji).

    Ta opcja powoduje skonfigurowanie wdrożonego pliku Web.config w celu określenia inicjatora MigrateDatabaseToLatestVersion . Ten inicjator automatycznie aktualizuje bazę danych do najnowszej wersji, gdy aplikacja uzyskuje dostęp do bazy danych po raz pierwszy po wdrożeniu.

Konfigurowanie przekształceń profilu publikowania

  1. Wybierz pozycję Zamknij. Wybierz pozycję Tak po wyświetleniu monitu o zapisanie zmian.

  2. W Eksplorator rozwiązań rozwiń węzeł Właściwości, rozwiń węzeł PublishProfiles.

  3. Kliknij prawym przyciskiem myszy plik CustomProfile.pubxml i zmień jego nazwę na Test.pubxml.

  4. Kliknij prawym przyciskiem myszy plik Test.pubxml. Wybierz pozycję Dodaj przekształcenie konfiguracji.

    Menu Dodawanie przekształcenia konfiguracji

    Program Visual Studio tworzy plik przekształcenia Web.Test.config i otwiera go.

  5. W pliku przekształcania Web.Test.config wstaw następujący kod natychmiast po otwarciu tagu konfiguracji.

    <appSettings>
        <add key="Environment" value="Test" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
    </appSettings>
    

    Jeśli używasz profilu publikowania testowego, to przekształcenie ustawia wskaźnik środowiska na "Test". W wdrożonej witrynie zobaczysz tekst "(Test)" po nagłówku "Contoso University" H1.

  6. Zapisz i zamknij plik.

  7. Kliknij prawym przyciskiem myszy plik Web.Test.config i wybierz pozycję Podgląd przekształcenia , aby upewnić się, że zakodowana transformacja generuje oczekiwane zmiany.

    W oknie Web.config Preview (Wersja zapoznawcza ) wyświetlany jest wynik zastosowania zarówno przekształceń Web.Release.config , jak i transformacji Web.Test.config .

Podgląd aktualizacji wdrożenia

  1. Otwórz ponownie Kreatora publikowania w sieci Web (kliknij prawym przyciskiem myszy projekt ContosoUniversity, wybierz pozycję Publikuj, a następnie podgląd).

  2. W oknie dialogowym Podgląd wybierz pozycję Rozpocznij podgląd , aby wyświetlić listę plików, które zostaną skopiowane.

    Publikowanie w wersji zapoznawczej

    Możesz również wybrać link Baza danych w wersji zapoznawczej , aby wyświetlić skrypty, które będą uruchamiane w bazie danych członkostwa. (Nie są uruchamiane żadne skrypty dla wdrożenia Migracje Code First, więc nie ma nic do podglądu dla bazy danych aplikacji).

  3. Kliknij pozycję Opublikuj.

    Jeśli program Visual Studio nie jest w trybie administratora, może zostać wyświetlony komunikat o błędzie uprawnień. W takim przypadku zamknij program Visual Studio, otwórz go w trybie administratora i spróbuj opublikować ponownie.

    Jeśli program Visual Studio jest w trybie administratora, okno Dane wyjściowe zgłasza pomyślne skompilowanie i opublikowanie.

    Output_window_publish_Test

    Jeśli adres URL został wprowadzony w polu Docelowy adres URL na karcie Połączenie profilu publikowania, przeglądarka zostanie automatycznie otwarta na stronie głównej platformy Contoso University uruchomionej w usługach IIS na komputerze.

Testowanie w środowisku testowym

Zwróć uwagę, że wskaźnik środowiska pokazuje wartość "(Test)" zamiast "(Dev),", która pokazuje, że przekształcenieWeb.config dla wskaźnika środowiska zakończyło się pomyślnie.

Uruchom stronę Instruktorzy , aby sprawdzić, czy kod Code First zainicjował bazę danych z danymi instruktora. Po wybraniu tej strony załadowanie może potrwać kilka minut, ponieważ program Code First tworzy bazę danych, a następnie uruchamia metodę Seed . (Nie zrobiono tego, gdy znajdowałeś się na stronie głównej, ponieważ aplikacja nie próbowała jeszcze uzyskać dostępu do bazy danych).

Wybierz kartę Uczniowie , aby sprawdzić, czy wdrożona baza danych nie ma uczniów.

Wybierz pozycję Dodaj uczniów z menu Uczniowie . Dodaj ucznia, a następnie wyświetl nowego ucznia na stronie Uczniowie . To sprawdza, czy można pomyślnie zapisać w bazie danych.

Z menu Kursy wybierz pozycję Aktualizuj środki. Strona Aktualizuj środki wymaga uprawnień administratora, więc zostanie wyświetlona strona Logowanie . Wprowadź utworzone wcześniej poświadczenia konta administratora ("admin" i "devpwd"). Zostanie wyświetlona strona Aktualizuj środki . Sprawdza to, czy konto administratora utworzone w poprzednim samouczku zostało prawidłowo wdrożone w środowisku testowym.

Sprawdź, czy folder ELMAH istnieje w folderze c:\inetpub\wwwroot\ContosoUniversity tylko z plikiem zastępczym.

Przegląd zmian Web.config automatycznych dla Migracje Code First

Otwórz plik Web.config w wdrożonej aplikacji w lokalizacji C:\inetpub\wwwroot\ContosoUniversity i zobaczysz, gdzie proces wdrażania skonfigurowany Migracje Code First, aby automatycznie zaktualizować bazę danych do najnowszej wersji.

Otwórz plik Web.config w wdrożonej aplikacji w lokalizacji C:\inetpub\wwwroot\ContosoUniversity i sprawdź, gdzie proces wdrażania skonfigurowany Migracje Code First, aby automatycznie zaktualizować bazę danych do najnowszej wersji.

Proces wdrażania utworzył również nowe parametry połączenia dla Migracje Code First do użycia wyłącznie do aktualizowania schematu bazy danych:

Database_Publish parametry połączenia

Ten dodatkowy parametry połączenia umożliwia określenie jednego konta użytkownika na potrzeby aktualizacji schematu bazy danych i innego konta użytkownika na potrzeby dostępu do danych aplikacji. Można na przykład przypisać rolę db_owner do Migracje Code First i db_datareader z rolami db_datawriter do aplikacji. Jest to typowy wzorzec ochrony, który uniemożliwia potencjalnie złośliwym kodom w aplikacji zmianę schematu bazy danych. (Na przykład może się to zdarzyć w przypadku pomyślnego ataku polegającym na wstrzyknięciu kodu SQL). Te samouczki nie używają tego wzorca. Aby zaimplementować ten wzorzec w scenariuszu, wykonaj następujące kroki:

  1. W Kreatorze publikowania w sieci Web na karcie Ustawienia wprowadź parametry połączenia, który określa użytkownika z pełnymi uprawnieniami aktualizacji schematu bazy danych. Wyczyść pole wyboru Użyj tej parametry połączenia w czasie wykonywania. W wdrożonym pliku Web.config staje się DatabasePublish to parametry połączenia.

  2. Utwórz przekształcenie pliku Web.config dla parametry połączenia, którego aplikacja ma używać w czasie wykonywania.

Podsumowanie

Aplikacja została wdrożona w usługach IIS na komputerze dewelopera i przetestowała ją tam.

Strona główna w teście

Sprawdza to, czy proces wdrażania skopiował zawartość aplikacji do właściwej lokalizacji (z wyłączeniem plików, których nie chcesz wdrożyć), a także że program Web Deploy prawidłowo skonfigurował usługi IIS podczas wdrażania. W następnym samouczku uruchomisz jeszcze jeden test, który znajdzie zadanie wdrożenia, które nie zostało jeszcze wykonane: ustawianie uprawnień folderu w folderze Elm ah .

Więcej informacji

Aby uzyskać informacje o uruchamianiu usług IIS lub IIS Express w programie Visual Studio, zobacz następujące zasoby: