Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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:
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.
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.
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.
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:
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 .
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.
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.
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.)
Wprowadź "inetmgr" i kliknij OK.
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.
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 –iTo 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.
Jeśli zamknąłeś Menedżer IIS, uruchom go ponownie, rozwiń węzeł serwera i wybierz Application Pools.
W okienku Pule aplikacji wybierz pozycję Domyślna Pula aplikacji. W okienku Akcje wybierz pozycję Ustawienia podstawowe.
W oknie dialogowym Edytowanie puli aplikacji zmień wersję środowiska .NET CLR na .NET CLR w wersji 4.0.30319. Wybierz przycisk OK.
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:
- Baza danych członkostwa
- 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.
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.
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.
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.
W programie Visual Studio otwórz utworzony wcześniej plik Grant.sql .
Wybierz pozycję Połącz.
W oknie dialogowym Łączenie z serwerem wprowadź ciąg .\SQLExpress jako nazwę serwera. Wybierz pozycję Połącz.
Z listy rozwijanej bazy danych wybierz pozycję ContosoUniversity. Wybierz polecenie 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
W Eksplorator rozwiązań kliknij prawym przyciskiem myszy projekt ContosoUniversity (a nie projekt ContosoUniversity.DAL). Wybierz Publikuj. Zostanie wyświetlona strona Publikowanie .
Wybierz pozycję Nowy profil. Zostanie wyświetlone okno dialogowe Wybieranie miejsca docelowego publikowania.
Wybierz pozycję IIS, FTP itp. Wybierz pozycję Utwórz profil. Zostanie wyświetlony kreator Publikowania .
Z menu rozwijanego Metoda publikowania wybierz pozycję Web Deploy.
W polu Serwer wprowadź localhost.
W polu Nazwa witryny wprowadź domyślną witrynę sieci Web/ContosoUniversity.
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.
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.
Wybierz przycisk Dalej , aby przejść do karty Ustawienia .
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.
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 .
Pozostaw puste pola wyboru Prekompiluj podczas publikowania i Usuń dodatkowe pliki w miejscu docelowym.
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.
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=TrueProces 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.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.
Wybierz pozycję Konfiguruj aktualizacje bazy danych.
W oknie dialogowym Konfigurowanie aktualizacji bazy danych wybierz pozycję Dodaj skrypt SQL. Przejdź do skryptu Grant.sql zapisanego wcześniej w folderze rozwiązania.
Powtórz ten proces, aby dodać skrypt aspnet-data-dev.sql .
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.
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=TrueProces 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.
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
Wybierz Zamknij. Po wyświetleniu monitu o zapisanie zmian wybierz pozycję Tak .
W Eksploratorze rozwiązań rozwiń Właściwości, rozwiń PublishProfiles.
Kliknij prawym przyciskiem myszy plik CustomProfile.pubxml i zmień jego nazwę na Test.pubxml.
Kliknij prawym przyciskiem myszy plik Test.pubxml. Wybierz Dodaj przekształcenie konfiguracji.
Program Visual Studio tworzy plik przekształcenia Web.Test.config i otwiera go.
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.
Zapisz i zamknij plik.
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
Otwórz ponownie Kreatora publikowania w sieci Web (kliknij prawym przyciskiem myszy projekt ContosoUniversity, wybierz Publikuj, a następnie Podgląd).
W oknie dialogowym Podgląd wybierz pozycję Uruchom podgląd, aby wyświetlić listę plików, które zostaną skopiowane.
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).
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.
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.
Proces wdrażania utworzył również nowe parametry połączenia dla Migracje Code First do użycia wyłącznie do aktualizowania schematu bazy danych:
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:
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
DatabasePublishciąg połączenia.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.
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:
- Omówienie usług IIS Express w witrynie IIS.net.
- Wprowadzenie do programu IIS Express na blogu Scotta Guthrie'a.
- Serwery sieci Web w programie Visual Studio dla projektów sieci Web ASP.NET.
- Podstawowe różnice między usługami IIS a serwerem deweloperskim ASP.NET na witrynie ASP.NET.