Поделиться через


Развертывание веб-приложения ASP.NET с помощью SQL Server Compact с помощью Visual Studio или Visual Web Developer: развертывание обновления только для кода — 8 из 12

Том Дайкстра

Скачивание начального проекта

В этой серии руководств показано, как развернуть (опубликовать) проект веб-приложения ASP.NET, включающий базу данных SQL Server Compact с помощью RC-кандидата Visual Studio 2012 или RC-кандидата Visual Studio Express 2012 для Интернета. Вы также можете использовать Visual Studio 2010, если установить обновление веб-публикации. Общие сведения о серии см . в первом руководстве серии.

В руководстве по использованию функций развертывания, представленных после выпуска RC Visual Studio 2012, показано, как развертывать выпуски SQL Server, отличные от SQL Server Compact, и показано, как развернуть в приложение Azure service веб-приложения, см. ASP.NET веб-развертывание с помощью Visual Studio.

Обзор

После первоначального развертывания работа по обслуживанию и разработке веб-сайта продолжается, и вскоре потребуется развернуть обновление. В этом руководстве описан процесс развертывания обновления в коде приложения. Это обновление не включает изменение базы данных; Вы увидите, что отличается от развертывания изменения базы данных в следующем руководстве.

Напоминание. Если вы получаете сообщение об ошибке или что-то не работаете по мере прохождения руководства, обязательно проверьте страницу устранения неполадок.

Изменение кода

В качестве простого примера обновления приложения вы добавите на страницу "Преподаватели " список курсов, обучаемых выбранным инструктором.

Если вы запускаете страницу "Инструкторы ", вы заметите, что в сетке есть ссылки select , но они не делают ничего, кроме того, чтобы фон строки превратился серым.

Instructors_page

Теперь вы добавите код, который запускается при щелчке ссылки Select и отображает список курсов, обучаемых выбранным инструктором.

В Instructors.aspx добавьте следующую разметку сразу после элемента управления 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>

Запустите страницу и выберите инструктора. Вы увидите список курсов, преподаваемых этим инструктором.

Instructors_page_with_courses

Развертывание обновления кода в тестовой среде

Развертывание в тестовой среде — это простой вопрос повторной публикации с одним щелчком мыши. Чтобы ускорить этот процесс, можно использовать панель инструментов "Публикация веб-щелчка".

В меню "Вид" выберите панели инструментов и выберите веб-элемент "Опубликовать".

Selecting_One_Click_Publish_toolbar

В Обозреватель решений выберите проект ContosoUniversity.

Панель инструментов "Опубликовать в Интернете", выберите профиль публикации тестовой публикации и щелкните "Опубликовать интернет " (значок со стрелками влево и вправо).

Web_One_Click_Publish_toolbar

Visual Studio развертывает обновленное приложение, а браузер автоматически открывается на домашней странице. Запустите страницу "Инструкторы" и выберите инструктора, чтобы убедиться, что обновление успешно развернуто.

Instructors_page_with_courses_Test

Обычно вы также выполняете тестирование регрессии (т. е. проверьте остальную часть сайта, чтобы убедиться, что новое изменение не сломалось ни одной существующей функциональности). Но для этого руководства вы пропустите этот шаг и перейдите к развертыванию обновления в рабочей среде.

Предотвращение повторного развертывания исходного состояния базы данных в рабочую среду

В реальном приложении пользователи взаимодействуют с рабочим сайтом после первоначального развертывания, а базы данных заполняются динамическими данными. Таким образом, вы не хотите повторно развертывать базу данных членства в исходном состоянии, что приведет к удалению всех динамических данных. Так как базы данных SQL Server Compact являются файлами в папке App_Data , это необходимо предотвратить путем изменения параметров развертывания, чтобы файлы в папке App_Data не развертывались.

Откройте окно "Свойства проекта" для проекта ContosoUniversity и выберите вкладку "Пакет/публикация". Убедитесь, что в раскрывающемся списке "Конфигурация" выбраны активные (выпуск) или "Выпуск", выберите "Исключить файлы" из папки App_Data.

Exclude_files_from_the_App_Data_folder

Если вы решите развернуть отладочную сборку в будущем, рекомендуется внести те же изменения в конфигурацию сборки отладки: измените конфигурацию на отладку и выберите "Исключить файлы" из папки App_Data.

Сохраните и закройте вкладку "Пакет или публикация веб-сайта ".

Примечание.

Внимание

Убедитесь, что у вас нет дополнительных файлов в месте назначения , выбранном в профилях публикации. Если выбрать этот параметр, процесс развертывания удалит базы данных, которые есть в App_Data на развернутом сайте, и он удалит саму папку App_Data.

Запрет доступа пользователей к рабочему сайту во время обновления

Теперь развертывание изменений — это простое изменение на одну страницу. Но иногда вы развертываете более крупные изменения, и в этом случае сайт может вести себя странно, если пользователь запрашивает страницу до завершения развертывания. Чтобы предотвратить это, можно использовать файл app_offline.htm . При помещении файла с именем app_offline.htm в корневую папку приложения службы IIS автоматически отображает этот файл вместо запуска приложения. Чтобы предотвратить доступ во время развертывания, вы помещаете app_offline.htm в корневую папку, запустите процесс развертывания и удалите app_offline.htm.

В Обозреватель решений щелкните правой кнопкой мыши решение (не один из проектов) и выберите новую папку решения.

Creating_a_solution_folder

Назовите папку SolutionFiles.

В новой папке создайте HTML-страницу с именем app_offline.htm. Замените существующее содержимое следующим разметкой:

<!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>

Файл app_offline.htm можно скопировать на сайт с помощью FTP-подключения или служебной программы Диспетчера файлов на панели управления поставщика услуг размещения. В этом руководстве вы будете использовать диспетчер файлов.

Откройте панель управления и выберите диспетчер файлов , как и в руководстве по развертыванию в рабочей среде . Выберите contosouniversity.com , а затем wwwroot , чтобы перейти к корневой папке приложения, а затем нажмите кнопку "Отправить".

Upload_button_in_File_Manager

В диалоговом окне "Отправить файл" выберите файл app_offline.htm и нажмите кнопку "Отправить".

Upload_dialog_box_in_File_Manager

Перейдите по URL-адресу вашего сайта. Вы видите, что страница app_offline.htm теперь отображается вместо домашней страницы.

App_offline.htm_page_in_production

Теперь вы готовы к развертыванию в рабочей среде.

Развертывание обновления кода в рабочей среде

На панели инструментов "Публикация веб-одного щелчка" выберите профиль публикации рабочей среды и нажмите кнопку "Опубликовать интернет".

Visual Studio развертывает обновленное приложение и открывает браузер на домашней странице сайта. Отображается файл app_offline.htm. Прежде чем проверить успешное развертывание, необходимо удалить файл app_offline.htm .

Вернитесь к приложению Диспетчера файлов на панели управления. Выберите contosouniversity.com и wwwroot, выберите app_offline.htm и нажмите кнопку "Удалить".

Deleting_app_offline.htm

В браузере откройте страницу "Инструкторы" на общедоступном сайте и выберите инструктора, чтобы убедиться, что обновление успешно развернуто.

Instructors_page_with_courses_Prod

Теперь вы развернули обновление приложения, которое не связано с изменением базы данных. В следующем руководстве показано, как развернуть изменение базы данных.