Wdrożenie aplikacji ASP.NET przy użyciu Visual Studio: Wdrażanie na Testowanie

Autor: Tom Dykstra

W tej serii samouczków pokazano, jak wdrożyć (opublikować) aplikację ASP.NET do usługi Azure App Service Web Apps lub do 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 lokalnym serwerze Internet Information Services (IIS).

Ogólnie rzecz biorąc podczas opracowywania aplikacji uruchamiasz ją i testujesz w programie Visual Studio. Domyślnie projekty aplikacji internetowych w programie Visual Studio 2017 używają usług IIS Express jako serwera internetowego programistycznego. Program 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 deweloperskich sieci Web nie działa dokładnie tak jak IIS. W związku z tym aplikacja może działać i testować prawidłowo w programie Visual Studio, ale kończy się niepowodzeniem po wdrożeniu 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óry będzie używany później do wdrożenia aplikacji w środowisku produkcyjnym.

    Program Visual Studio można skonfigurować tak, aby używał usług IIS podczas uruchamiania projektu internetowego, ale nie będzie to testować 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 to Web Apps w Usłudze Aplikacji Azure. Idealne środowisko testowe to dodatkowa aplikacja internetowa utworzona w usłudze platformy Azure. Chociaż 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 go u innego dostawcy hostingu, opcja 2 może nie być możliwa do wykonania lub może być kosztowna, więc w tej serii samouczków przedstawiono obie metody. Wskazówki dotyczące opcji 2 są dostępne w samouczku Wdrażanie w środowisku produkcyjnym.

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

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.

Pobierz projekt startowy Contoso University

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

Pobierz projekt startowy

Instalacja usług IIS

Aby wdrożyć na IIS na komputerze deweloperskim, upewnij się, że 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 systemu Windows 10, Windows 8 lub Windows 7. Jeśli już zainstalowano 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 w razie potrzeby wymagania wstępne dotyczące usług IIS i Web Deploy.

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

    • Użyj Instalatora platformy sieci Web, aby zainstalować usługi IIS i narzędzie Web Deploy:

      Instalowanie usług IIS przy użyciu interfejsu WPI

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

      Zobaczysz komunikaty wskazujące, że usługi IIS 7 zostaną zainstalowane. Link działa dla usług IIS 8 w systemie Windows 8; ale w przypadku systemu Windows 8 i nowszych wykonaj następujące kroki, aby upewnić się, że zainstalowano ASP.NET 4.7:

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

    • Rozwiń Internet Information Services, World Wide Web Services i Application Development Features.

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

      Wybierz ASP.NET 4.7

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

      Wybieranie usług sieci Web na całym świecie

    • Wybierz przycisk OK. Zostanie wyświetlone okno dialogowe z komunikatami wskazującymi, że instalacja się odbywa.

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

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

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

  2. Wprowadź "inetmgr" i kliknij OK.

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

    Inetmgr_pokazuje_pule_aplikacji_4.0

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

    W przypadku systemu Windows 8 lub nowszego zapoznaj się z instrukcjami poprzedniej sekcji, aby upewnić się, że ASP.NET 4.7 jest zainstalowana lub zobacz Jak zainstalować program ASP.NET 4.5 w systemach 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 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 programu .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, więc zmień pulę aplikacji na .NET 4.

  5. Jeśli zamknąłeś Menedżer IIS, uruchom go ponownie, rozwiń węzeł serwera i wybierz Application Pools.

  6. W okienku Pule aplikacji wybierz pozycję Domyślna Pula aplikacji. W okienku Akcje wybierz pozycję Ustawienia podstawowe.

    Inetmgr_wybieranie_Ustawień_Podstawowych_dla_puli_aplikacji

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

    Wybór .NET 4 dla DefaultAppPool

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

Instalowanie programu SQL Server Express

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

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

Na pierwszej stronie Centrum instalacji programu SQL Server wybierz pozycję Nowa autonomiczna instalacja programu 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 programu SQL Server w Kreatorze 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 połączenia między bazami danych są łatwiejsze.

Jeśli wdrażasz u dostawcy hostingu innej firmy, twój plan hostingu może również dać ci powód do ich połączenia. 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 do dwóch baz danych w środowisku testowym i do jednej bazy danych w środowisku przejściowym i produkcyjnym.

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

Wybieranie_Utwórz_Nową_Bazę_Danych_SQL_Server

W oknie dialogowym Tworzenie nowej bazy danych programu 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 programu SQL Server Express School o nazwie ContosoUniversity.

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

Nowe bazy danych w Eksploratorze serwera

Utwórz skrypt przyznawania uprawnień dla nowych baz danych

Gdy aplikacja działa w usługach IIS na komputerze dewelopera, 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 programem SQL Server Express 2012 lub nowszym oraz ustawieniami usług IIS w systemach Windows 10, Windows 8 lub Windows 7, jak określono w tym samouczku. Jeśli używasz innej wersji programu SQL Server lub Systemu Windows lub w przypadku innej konfiguracji usług IIS na komputerze, zmiany tego skryptu mogą być wymagane. Aby uzyskać więcej informacji na temat skryptów programu 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 stosowane w środowisku produkcyjnym. W niektórych scenariuszach możesz określić użytkownika, który ma uprawnienia pełnej aktualizacji schematu bazy danych tylko do wdrożenia i określ dla czasu wykonywania innego użytkownika, który ma uprawnienia tylko do odczytu i zapisu danych. Aby uzyskać więcej informacji, zobacz Przeglądanie automatycznych zmian Web.config dla migracji Code First w dalszej części tego samouczka.

Uruchom skrypt grant w bazie danych aplikacji

Profil publikowania można skonfigurować tak, aby uruchamiał skrypt GRANT w bazie danych członkostwa podczas wdrażania, ponieważ wdrożenie bazy danych używa dostawcy dbDacFx. Nie można uruchamiać skryptów podczas wdrażania migracji Code First, co jest sposobem, w jaki wdrażasz bazę 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 polecenie 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 IIS

Możesz wdrożyć w IIS na kilka sposobów przy użyciu programu Visual Studio i narzędzia Web Deploy:

  • Użyj funkcji "opublikuj jednym kliknięciem" w programie Visual Studio.
  • Opublikuj z poziomu wiersza polecenia.
  • Utwórz pakiet wdrożeniowy i zainstaluj go przy użyciu Menedżera usług IIS. Pakiet zawiera archiwum .zip ze wszystkimi plikami i metadanymi wymaganymi do zainstalowania witryny na serwerze 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 wdrażania, zobacz Wdrażanie aplikacji internetowej przez utworzenie i zainstalowanie pakietu wdrażania 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 Start systemu Windows 8 (lub nowszej) lub w 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 na serwerze IIS na komputerze lokalnym.

Tworzenie profilu publikowania

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

  2. Wybierz pozycję Nowy profil. Zostanie wyświetlone okno dialogowe Wybieranie miejsca docelowego publikowania.

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

    Karta profilu kreatora publikacji w sieci

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

  5. W polu Serwer wprowadź localhost.

  6. W polu Nazwa witryny wprowadź domyślną witrynę sieci Web/ContosoUniversity.

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

    Ustawienie adresu URL docelowego 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 znak zaznaczenia potwierdza, że połączenie zakończyło się pomyślnie.

    Karta Połączenia w kreatorze publikowania w sieci Web

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

  10. Pole menu rozwijanego Konfiguracja określa konfigurację kompilacji do wdrożenia. Pozostaw wartość domyślną Release. Nie będziesz wdrażać kompilacji debug 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 programu SQL Server Express, a nie plików .mdf w folderze App_Data .

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

    Opcje publikowania plików na karcie Ustawienia

    Prekompilacja to opcja przydatna głównie w przypadku dużych stron. Może skrócić czas uruchamiania po 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 lokacji 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 usługa 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. Być może masz jeden projekt dla witryny głównej w contoso.com i inny projekt dla bloga w contoso.com/blog. Aplikacja blogu znajduje się w podfolderze. Jeśli wybierzesz opcję Usuń dodatkowe pliki w lokalizacji docelowej podczas wdrażania głównej strony, aplikacja blogowa 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, przechowują 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/Publikuj 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 Zdalny ciąg połączenia wprowadź następujący ciąg połączenia wskazujący na nową bazę danych członkostwa w SQL Server Express.

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

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

    Możesz również pobrać parametry połączenia z Eksploratora serwera. W Eksploratorze Serwera rozwiń Połączenia danych i wybierz <bazę danych machinename>\sqlexpress.aspnet-ContosoUniversity, a następnie w oknie Właściwości skopiuj wartość Ciąg połączenia. Ten ciąg połączenia będzie miał jedno dodatkowe ustawienie, które możesz 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 określ dodatkowe skrypty, które należy uruchomić: jeden, aby udzielić dostępu bazy danych do domyślnej puli aplikacji i jeden do wdrożenia danych.

  3. Wybierz pozycję Konfiguruj aktualizacje bazy danych.

  4. W oknie dialogowym Konfigurowanie aktualizacji 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 aktualizacji bazy danych dla bazy danych członkostwa

  6. Wybierz Zamknij.

Konfigurowanie wdrożenia dla bazy danych aplikacji

Gdy program Visual Studio wykryje klasę Entity Framework DbContext, tworzy wpis w sekcji Bazy danych, który ma pole wyboru Wykonaj Migracje Code First zamiast pola wyboru Zaktualizuj Bazę Danych. Aby wykonać ten samouczek, użyjesz tego pola wyboru, aby określić wdrożenie migracji Code First.

W niektórych scenariuszach możesz korzystać z DbContext bazy danych, ale zamiast korzystać z Migracji, chcesz wdrożyć bazę danych za pomocą dostawcy dbDacFx. W takim przypadku zobacz Jak mogę wdrożyć bazę danych Code First bez migracji? w ASP.NET Web Deployment FAQ on MSDN (Często zadawane pytania dotyczące wdrażania w sieci Web 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 wskazujące nową bazę danych aplikacji SQL Server Express.

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

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

    Można również uzyskać ciąg połączenia z bazą danych aplikacji z Server Explorer w taki sam sposób, jak uzyskano ciąg połączenia z bazą danych członkostwa.

  2. Wybierz Wykonaj Migracje Code First (uruchamiane podczas startu aplikacji).

    Ta opcja powoduje skonfigurowanie wdrożonego pliku Web.config w procesie wdrażania 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 Zamknij. Po wyświetleniu monitu o zapisanie zmian wybierz pozycję Tak .

  2. W Eksploratorze rozwiązań rozwiń Właściwości, rozwiń 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 Dodaj przekształcenie konfiguracji.

    Dodaj menu 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 bezpośrednio po otwarciu tagu konfiguracji.

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

    W przypadku korzystania z profilu publikowania testowego ta transformacja ustawia wskaźnik środowiska na wartość "Test". W wdrożonej witrynie zobaczysz "(Test)" za nagłówkiem "Contoso University" H1.

  6. Zapisz i zamknij plik.

  7. Kliknij prawym przyciskiem myszy plik Web.Test.config i wybierz pozycję Przekształcenie w wersji zapoznawczej, aby upewnić się, że zakodowana transformacja powoduje oczekiwane zmiany.

    W oknie Web.config Preview przedstawiono wynik zastosowania przekształceń Web.Release.config i przekształcenia Web.Test.config .

Podgląd aktualizacji wdrożenia

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

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

    Podgląd publikacji

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

  3. Wybierz Publikuj.

    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 wprowadziłeś adres URL w polu Docelowy adres URL na karcie Połączenie profilu publikowania, przeglądarka zostanie automatycznie otwarta na stronie głównej aplikacji Contoso University uruchomionej w usługach IIS na Twoim komputerze.

Testowanie w środowisku testowym

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

Uruchom stronę Instruktorzy, aby sprawdzić, czy baza danych Code First została uzupełniona 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 . Sprawdza to, czy można pomyślnie zapisać w bazie danych.

Z menu Kursy wybierz pozycję Aktualizuj kredyty. Strona Aktualizacja Kredytów wymaga uprawnień administratora, dlatego wyświetla się strona Zaloguj się. Wprowadź utworzone wcześniej poświadczenia konta administratora ("admin" i "devpwd"). Zostanie wyświetlona strona Aktualizacja Kredytów. Sprawdza to, czy konto administratora utworzone w poprzednim samouczku zostało poprawnie wdrożone w środowisku testowym.

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

Przejrzyj automatyczne zmiany w pliku Web.config dla migracji Code First

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

Otwórz plik Web.config we wdrożonej aplikacji w lokalizacji C:\inetpub\wwwroot\ContosoUniversity i sprawdź, jak proces wdrażania skonfigurował migracje Code First do automatycznej aktualizacji bazy 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 ciąg połączenia umożliwia określenie jednego konta użytkownika dla aktualizacji schematu bazy danych i innego konta użytkownika do dostępu do danych aplikacji. Na przykład można przypisać rolę db_owner do Code First Migrations i db_datareader wraz z rolami db_datawriter do aplikacji. Jest to typowy wzorzec ochrony, który uniemożliwia potencjalnie złośliwemu kodowi w aplikacji zmianę schematu bazy danych. (Na przykład może się to zdarzyć w pomyślnym ataku polegającym na wstrzyknięciu kodu SQL). Te samouczki nie używają tego wzorca. Aby zaimplementować ten wzorzec w swoim scenariuszu, wykonaj następujące kroki:

  1. W kreatorze Publikowanie w sieci Web na karcie Ustawienia wprowadź ciąg połączenia, który określa użytkownika z pełnymi uprawnieniami do aktualizacji schematu bazy danych. Wyczyść pole wyboru użycia tego łańcucha połączenia w czasie wykonywania. W wdrożonym pliku Web.config staje się to DatabasePublish ciąg połączenia.

  2. Utwórz transformację pliku Web.config dla ciągu połączenia, z którego aplikacja ma korzystać w czasie wykonywania.

Podsumowanie

Aplikację wdrożyłeś do IIS na komputerze deweloperskim i przetestowałeś 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 narzędzie Web Deploy poprawnie skonfigurowało usługi IIS podczas wdrażania. W następnym samouczku uruchomisz jeszcze jeden test, który znajdzie zadanie wdrożeniowe, które nie zostało jeszcze wykonane: ustawienie uprawnień do folderu Elm ah.

Więcej informacji

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