Udostępnij za pośrednictwem


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

Pobierz projekt startowy

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.

Instructors_page

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.

Instructors_page_with_courses

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.

Selecting_One_Click_Publish_toolbar

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ę).

Web_One_Click_Publish_toolbar

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.

Instructors_page_with_courses_Test

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.

Exclude_files_from_the_App_Data_folder

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.

Creating_a_solution_folder

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ż.

Upload_button_in_File_Manager

W oknie dialogowym Przekazywanie pliku wybierz plik app_offline.htm, a następnie kliknij przycisk Przekaż.

Upload_dialog_box_in_File_Manager

Przejdź do adresu URL witryny. Zobaczysz, że strona app_offline.htm jest teraz wyświetlana zamiast strony głównej.

App_offline.htm_page_in_production

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ń.

Deleting_app_offline.htm

W przeglądarce otwórz stronę Instruktorzy w publicznej witrynie i wybierz instruktora, aby sprawdzić, czy aktualizacja została pomyślnie wdrożona.

Instructors_page_with_courses_Prod

Wdrożono teraz aktualizację aplikacji, która nie obejmowała zmiany bazy danych. W następnym samouczku pokazano, jak wdrożyć zmianę bazy danych.