Wdrażanie aplikacji internetowej ASP.NET za pomocą programu SQL Server Compact przy użyciu programu Visual Studio lub Visual Web Developer: wdrażanie aktualizacji tylko do kodu — 8 z 12
Autor: Tom Dykstra
W tej serii samouczków pokazano, jak wdrożyć (opublikować) projekt aplikacji internetowej ASP.NET zawierający bazę danych SQL Server Compact przy użyciu programu Visual Studio 2012 RC lub Visual Studio Express 2012 RC for Web. Jeśli zainstalujesz aktualizację publikowania w sieci Web, możesz również użyć programu Visual Studio 2010. Aby zapoznać się z wprowadzeniem do serii, zobacz pierwszy samouczek z serii.
Aby zapoznać się z samouczkiem przedstawiającym funkcje wdrażania wprowadzone po wersji RC programu Visual Studio 2012, pokazano, jak wdrożyć wersje programu SQL Server inne niż SQL Server Compact i pokazuje, jak wdrożyć w usłudze aplikacja systemu Azure Service Web Apps, zobacz ASP.NET Web Deployment using Visual Studio (Wdrażanie w internecie przy użyciu programu Visual Studio).
Omówienie
Po początkowym wdrożeniu twoja praca nad utrzymaniem i opracowywaniem witryny internetowej będzie kontynuowana, a zanim długo będzie konieczne wdrożenie aktualizacji. Ten samouczek przeprowadzi Cię przez proces wdrażania aktualizacji w kodzie aplikacji. Ta aktualizacja nie obejmuje zmiany bazy danych; Zobaczysz, co różni się od wdrażania zmiany bazy danych w następnym samouczku.
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.
Wprowadzanie zmian w kodzie
Jako prosty przykład aktualizacji aplikacji dodasz do strony Instruktorzy listę kursów nauczanych przez wybranego instruktora.
Jeśli uruchomisz stronę Instruktorzy , zauważysz, że w siatce znajdują się linki Wybierz , ale nie robią nic innego niż oznaczanie, że tło wiersza zmieni kolor na szary.
Teraz dodasz kod uruchamiany po kliknięciu linku Wybierz i wyświetlisz listę kursów nauczanych przez wybranego instruktora.
W Instructors.aspx dodaj następujący znacznik bezpośrednio po kontrolce ErrorMessageLabelLabel
:
<h3>Courses Taught</h3>
<asp:ObjectDataSource ID="CoursesObjectDataSource" runat="server" TypeName="ContosoUniversity.BLL.SchoolBL"
DataObjectTypeName="ContosoUniversity.DAL.Course" SelectMethod="GetCoursesByInstructor">
<SelectParameters>
<asp:ControlParameter ControlID="InstructorsGridView" Name="PersonID" PropertyName="SelectedDataKey.Value"
Type="Int32" />
</SelectParameters>
</asp:ObjectDataSource>
<asp:GridView ID="CoursesGridView" runat="server" DataSourceID="CoursesObjectDataSource"
AllowSorting="True" AutoGenerateColumns="False" SelectedRowStyle-BackColor="LightGray"
DataKeyNames="CourseID">
<EmptyDataTemplate>
<p>No courses found.</p>
</EmptyDataTemplate>
<Columns>
<asp:BoundField DataField="CourseID" HeaderText="ID" ReadOnly="True" SortExpression="CourseID" />
<asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" />
<asp:TemplateField HeaderText="Department" SortExpression="DepartmentID">
<ItemTemplate>
<asp:Label ID="GridViewDepartmentLabel" runat="server" Text='<%# Eval("Department.Name") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Uruchom stronę i wybierz instruktora. Zostanie wyświetlona lista kursów nauczanych przez tego instruktora.
Wdrażanie aktualizacji kodu w środowisku testowym
Wdrażanie w środowisku testowym to prosta kwestia ponownego uruchamiania publikowania jednym kliknięciem. Aby przyspieszyć ten proces, możesz użyć paska narzędzi Publikuj jednym kliknięciem w sieci Web.
W menu Widok wybierz pozycję Paski narzędzi, a następnie wybierz pozycję Sieć Web One Kliknij pozycję Publikuj.
W Eksplorator rozwiązań wybierz projekt ContosoUniversity.
Pasek narzędzi Publikowanie jednym kliknięciem w sieci Web, wybierz profil publikowania testowego , a następnie kliknij pozycję Publikuj w Internecie (ikona ze strzałkami wskazującymi lewą i prawą stronę).
Program Visual Studio wdraża zaktualizowaną aplikację, a przeglądarka zostanie automatycznie otwarta na stronie głównej. Uruchom stronę Instruktorzy i wybierz instruktora, aby sprawdzić, czy aktualizacja została pomyślnie wdrożona.
Zwykle wykonuje się również testowanie regresji (czyli przetestuj resztę witryny, aby upewnić się, że nowa zmiana nie przerwała żadnych istniejących funkcji). Jednak na potrzeby tego samouczka pominiesz ten krok i przejdziesz do wdrożenia aktualizacji w środowisku produkcyjnym.
Zapobieganie ponownemu wdrażania stanu początkowej bazy danych w środowisku produkcyjnym
W rzeczywistej aplikacji użytkownicy wchodzą w interakcję z witryną produkcyjną po początkowym wdrożeniu, a bazy danych są wypełniane danymi na żywo. W związku z tym nie chcesz ponownie wdrażać bazy danych członkostwa w stanie początkowym, co spowoduje wyczyszczenie wszystkich danych na żywo. Ponieważ bazy danych PROGRAMU SQL Server Compact znajdują się w folderze App_Data , należy temu zapobiec, zmieniając ustawienia wdrożenia, aby pliki w folderze App_Data nie zostały wdrożone.
Otwórz okno Właściwości projektu dla projektu ContosoUniversity i wybierz kartę Pakiet/Publikuj w sieci Web. Upewnij się, że pole rozwijane Konfiguracja ma wybraną opcję Aktywne (wydanie) lub Wydanie, wybierz pozycję Wyklucz pliki z folderu App_Data.
Jeśli zdecydujesz się wdrożyć kompilację debugowania w przyszłości, dobrym pomysłem jest wprowadzenie tej samej zmiany dla konfiguracji kompilacji debugowania: zmień konfigurację na Debugowanie, a następnie wybierz pozycję Wyklucz pliki z folderu App_Data.
Zapisz i zamknij kartę Pakiet/Publikowanie w sieci Web .
Uwaga
Ważne
Upewnij się, że nie masz opcji Usuń dodatkowe pliki w miejscu docelowym wybranym w profilach publikowania. W przypadku wybrania tej opcji proces wdrażania spowoduje usunięcie baz danych w App_Data w wdrożonej lokacji i spowoduje usunięcie samego folderu App_Data.
Uniemożliwianie użytkownikowi dostępu do lokacji produkcyjnej podczas aktualizacji
Wdrażana zmiana jest teraz prostą zmianą pojedynczej strony. Jednak czasami wdrażasz większe zmiany, a w takim przypadku witryna może zachowywać się dziwnie, jeśli użytkownik żąda strony przed zakończeniem wdrażania. Aby temu zapobiec, możesz użyć pliku app_offline.htm . Po umieściniu pliku o nazwie app_offline.htm w folderze głównym aplikacji usługi IIS automatycznie wyświetla ten plik zamiast uruchamiać aplikację. Aby zapobiec dostępowi podczas wdrażania, należy umieścić app_offline.htm w folderze głównym, uruchomić proces wdrażania, a następnie usunąć app_offline.htm.
W Eksplorator rozwiązań kliknij prawym przyciskiem myszy rozwiązanie (nie jedno z projektów) i wybierz pozycję Nowy folder rozwiązania.
Nadaj folderowi nazwę SolutionFiles.
W nowym folderze utwórz stronę HTML o nazwie app_offline.htm. Zastąp istniejącą zawartość następującym znacznikiem:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Contoso University - Under Construction</title>
</head>
<body>
<h1>Contoso University</h1>
<h2>Under Construction</h2>
<p>The Contoso University site is temporarily unavailable while we upgrade it. Please try again later.</p>
</body>
</html>
Plik app_offline.htm można skopiować do lokacji przy użyciu połączenia FTP lub narzędzia Menedżer plików w panelu sterowania dostawcy hostingu. Na potrzeby tego samouczka użyjesz Menedżera plików.
Otwórz panel sterowania i wybierz pozycję Menedżer plików, tak jak w samouczku Wdrażanie w środowisku produkcyjnym. Wybierz contosouniversity.com , a następnie wwwroot , aby przejść do folderu głównego aplikacji, a następnie kliknij przycisk Przekaż.
W oknie dialogowym Przekazywanie pliku wybierz plik app_offline.htm, a następnie kliknij przycisk Przekaż.
Przejdź do adresu URL witryny. Zobaczysz, że strona app_offline.htm jest teraz wyświetlana zamiast strony głównej.
Teraz możesz przystąpić do wdrażania w środowisku produkcyjnym.
Wdrażanie aktualizacji kodu w środowisku produkcyjnym
Na pasku narzędzi Publikowanie jednym kliknięciem w sieci Web wybierz profil Publikowania produkcyjnego, a następnie kliknij pozycję Publikuj w sieci Web.
Program Visual Studio wdraża zaktualizowaną aplikację i otwiera przeglądarkę na stronie głównej witryny. Zostanie wyświetlony plik app_offline.htm . Aby można było sprawdzić pomyślne wdrożenie, należy usunąć plik app_offline.htm .
Wróć do aplikacji Menedżer plików w panelu sterowania. Wybierz contosouniversity.com i wwwroot, wybierz app_offline.htm, a następnie kliknij przycisk Usuń.
W przeglądarce otwórz stronę Instruktorzy w publicznej witrynie i wybierz instruktora, aby sprawdzić, czy aktualizacja została pomyślnie wdrożona.
Wdrożono teraz aktualizację aplikacji, która nie obejmowała zmiany bazy danych. W następnym samouczku pokazano, jak wdrożyć zmianę bazy danych.