Udostępnij za pośrednictwem


ASP.NET Web Deployment using Visual Studio: Deploying to Test

Autor: Tom Dykstra

W tej serii samouczków pokazano, jak wdrożyć (opublikować) aplikację internetową ASP.NET w celu aplikacja systemu Azure 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 komputerze lokalnym programu Internet Information Server (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 usługi 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 aplikacja systemu Azure Service. 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.

Pobieranie projektu startowego 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ć programistyczne usługi IIS na komputerze deweloperów, 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 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, interfejs 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>Programy i funkcje>Włącz lub wyłącz funkcje systemu Windows.

    • Rozwiń listę Internet Information Services, World Wide Web Services i Application Development Features(Usługi internetowe), World Wide Web Services (Usługi internetowe) i Application Development Features (Funkcje tworzenia aplikacji).

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

      Wybierz ASP.NET 4.7

    • Upewnij się, że wybrano pozycję Usługi sieci Web i konsolę zarządzania usługami 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" w obszarze Strona początkowa . 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 pozycję Właściwości, wybierz kartę Menu Start, wybierz polecenie Dostosuj i wybierz polecenie Uruchom.

  2. Wprowadź ciąg "inetmgr" i wybierz przycisk 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_showing_4.0_app_pools

  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 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 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 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ę Domyślna Pula aplikacji. W okienku Akcje wybierz pozycję Ustawienia podstawowe.

    Inetmgr_selecting_Basic_Settings_for_app_pool

  7. W oknie dialogowym Edytowanie puli aplikacji zmień wersję środowiska .NET CLR 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 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 w dostawcy hostingu innej firmy, twój plan hostingu może również dać 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 w dwóch bazach danych w środowisku testowym i w jednej bazie 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ę Połączenia danych i wybierz polecenie Utwórz nową bazę danych programu SQL Server.

Selecting_Create_New_SQL_Server_Database

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

Tworzenie skryptu udzielania 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 zabezpieczeń Ten skrypt daje db_owner użytkownikowi uprawnienia dostępu do bazy danych w czasie wykonywania, co będzie dostępne 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 Migracje Code First w dalszej części tego samouczka.

Uruchamianie skryptu udzielania w bazie danych aplikacji

Profil publikowania można skonfigurować tak, aby uruchamiał skrypt udzielania 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 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 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 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 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 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). 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 Profil kreatora publikowania w 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ź domyślną witrynę sieci Web/ContosoUniversity.

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

    Ustawienie Docelowy adres 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 publikowania 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 plików. 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 wyczyszczone pola wyboru Prekompiluj podczas publikowania i Usuń dodatkowe pliki w miejscu docelowym .

    Opcje publikowania plików na karcie Ustawienia

    Wstępne komplikowanie to opcja przydatna głównie w przypadku dużych lokacji. 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. 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, 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 Remote parametry połączenia (Zdalne parametry połączenia) wprowadź następujące parametry połączenia wskazujące nową bazę danych członkostwa w programie SQL Server Express.

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

    Proces wdrażania umieszcza tę 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ł Połączenia danych 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 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 FrameworkDbContext, tworzy wpis w sekcji Bazy danych z polem wyboru Wykonaj Migracje Code First zamiast bazy danych aktualizacji. Na potrzeby tego samouczka 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 w celu wdrożenia bazy danych. 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 tę 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 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 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 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 nagłówek "(Test)" po nagłówku "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 pozycję Publikuj, a następnie pozycję Wersja zapoznawcza).

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

    Publikowanie w wersji zapoznawczej

    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 Migracje Code First, więc nie ma niczego do wyświetlenia podglą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 adres URL został wprowadzony 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 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 rozstawiona 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 . Sprawdza to, 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 poprawnie wdrożone w środowisku testowym.

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

Przejrzyj zmiany automatycznej konfiguracji Web.config dla Migracje Code First

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

Otwórz plik Web.config we wdrożonej aplikacji w lokalizacji C:\inetpub\wwwroot\ContosoUniversity i zobacz, gdzie proces wdrażania skonfigurowany Migracje Code First 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

Ta dodatkowa parametry połączenia umożliwia określenie jednego konta użytkownika dla 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ś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ź parametry połączenia, który określa użytkownika z pełnymi uprawnieniami aktualizacji schematu bazy danych. Wyczyść pole wyboru Użyj tego 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 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żenia, które nie zostało jeszcze wykonane: ustawianie uprawnień folderu w folderze 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: