ASP.NET веб-развертывание с помощью Visual Studio: развертывание обновления кода

от Tom Dykstra)

Скачать начальный проект

В этой серии руководств показано, как развернуть (опубликовать) веб-приложение ASP.NET в веб-приложениях службы приложений Azure или поставщике услуг размещения стороннего поставщика с помощью Visual Studio 2012 или Visual Studio 2010. Сведения о ряде см. в первом руководстве по ряду.

Обзор

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

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

Измените код

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

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

Страница инструкторов с выделенным фрагментом

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

  1. В инструкторах. aspxдобавьте следующую разметку сразу после элемента управления Label еррормессажелабел :

    <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>
    
  2. Запустите страницу и выберите лектора. Вы увидите список курсов, которые научились этим преподавателем.

    Страница инструкторов с учеными курсами

  3. Закройте браузер.

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

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

  1. Откройте мастер публикации веб-сайта , щелкнув правой кнопкой мыши проект ContosoUniversity и выбрав Publish (опубликовать).
  2. Щелкните профиль тестирования в раскрывающемся списке профиль .
  3. Перейдите на вкладку Параметры .
  4. В разделе DefaultConnection в разделе " базы данных " снимите флажок обновить базу данных .
  5. Перейдите на вкладку профиль и выберите профиль промежуточного хранения в раскрывающемся списке профиль .
  6. Когда появится запрос, нужно ли сохранить изменения, внесенные в профиль тестирования , нажмите кнопку Да.
  7. Внесите те же изменения в промежуточный профиль.
  8. Повторите эту процедуру, чтобы внести те же изменения в рабочем профиле.
  9. Закройте мастер публикации веб-сайта .

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

  1. В меню вид выберите панели инструментов , а затем выберите веб-публикация одним щелчком.

    Selecting_One_Click_Publish_toolbar

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

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

    Web_One_Click_Publish_toolbar

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

  5. Запустите страницу инструкторы и выберите лектора, чтобы убедиться, что обновление успешно развернуто.

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

При повторном развертывании веб-развертывание автоматически определяет, какие файлы были изменены, и копирует только измененные файлы на сервер. По умолчанию веб-развертывание использует даты последнего изменения для файлов, чтобы определить, какие из них изменились. Некоторые системы управления версиями изменяют дату файла даже в том случае, если не изменить содержимое файла. В этом случае может потребоваться настроить веб-развертывание для использования контрольных сумм файлов, чтобы определить, какие файлы были изменены. Дополнительные сведения см. в разделе почему все файлы были повторно развернуты, хотя я не изменил их? в разделе часто задаваемых вопросов о развертывании ASP.NET.

Перевести приложение в автономный режим во время развертывания

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

Можно настроить веб-развертывание для автоматического размещения на сервере приложения по умолчанию _автономного файла. htm , когда он начнет развертывание и удалить его после завершения развертывания. Чтобы сделать это, необходимо добавить следующий XML-элемент в файл профиля публикации (. pubxml):

<EnableMSDeployAppOffline>true</EnableMSDeployAppOffline>

В этом учебнике вы узнаете, как создать и использовать пользовательское приложение_автономном htm -файле.

Использование приложения_автономно. htm на промежуточном сайте не требуется, так как у вас нет пользователей, обращающихся к промежуточному сайту. Но рекомендуется использовать промежуточное хранение, чтобы протестировать все, как вы планируете развертывать в рабочей среде.

Создание_приложений в автономном режиме. htm

  1. В Обозреватель решенийщелкните решение правой кнопкой мыши и выберите команду Добавить, а затем щелкните новый элемент.

  2. Создайте HTML-страницу с именем app_offline. htm (удалите окончательный параметр l в расширении . HTML , создаваемом Visual Studio по умолчанию).

  3. Замените разметку шаблона следующей разметкой:

    <!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>
    
  4. Сохраните файл и закройте его.

Копировать приложение_offline. htm в корневую папку веб-сайта

Для копирования файлов на веб-сайт можно использовать любой инструмент FTP. FileZilla — это популярное средство FTP, которое отображается на снимках экрана.

Для использования средства FTP требуются три вещи: URL-адрес FTP, имя пользователя и пароль.

URL-адрес отображается на странице панели мониторинга веб-сайта в портал управления Azure, а имя пользователя и пароль для FTP можно найти в файле . publishsettings , скачанном ранее. Следующие шаги показывают, как получить эти значения.

  1. В портал управления Azure щелкните вкладку веб-сайты и выберите промежуточный веб-сайт.

  2. На странице панель мониторинга прокрутите вниз, чтобы найти имя узла FTP в разделе краткий обзор .

    Имя узла FTP

  3. Откройте промежуточный файл . publishsettings в блокноте или в другом текстовом редакторе.

  4. Найдите элемент publishProfile для профиля FTP.

  5. Скопируйте значения userName и userPWD.

    Учетные данные FTP

  6. Откройте средство FTP и войдите по URL-адресу FTP.

  7. Скопируйте приложение_offline. htm из папки решения в папку /site/wwwroot на промежуточном сайте.

    Копировать app_offline

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

    app_offline htm в окне браузера

Теперь все готово для развертывания в промежуточной среде.

Развертывание обновления кода для промежуточного хранения и рабочей среды

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

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

  2. Вернитесь к своему средству FTP и удалите приложение_offline. htm с промежуточного сайта.

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

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

Просмотр изменений и развертывание конкретных файлов

Visual Studio 2012 также дает возможность развертывать отдельные файлы. Для выбранного файла можно просмотреть различия между локальной версией и развернутой версией, развернуть файл в целевой среде или скопировать файл из целевой среды в локальный проект. В этом разделе руководства вы узнаете, как использовать эти функции.

Внесение изменений в развертывание

  1. Откройте содержимое/site. CSSи найдите блок для тега body.

  2. Измените значение background-color с #fff на darkblue.

    body {
        background-color: darkblue;
        border-top: solid 10px #000;
        color: #333;
        font-size: .85em;
        font-family: "Segoe UI", Verdana, Helvetica, Sans-Serif;
        margin: 0;
        padding: 0;
    }
    

Просмотр изменений в окне предварительного просмотра публикации

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

  1. Щелкните правой кнопкой мыши проект ContosoUniversity и выберите пункт опубликовать.

  2. В раскрывающемся списке профиль выберите профиль тестовой публикации.

  3. Щелкните Предварительный просмотр, а затем — начать предварительный просмотр.

  4. В области просмотра дважды щелкните site. CSS.

    Дважды щелкните site. CSS

    В диалоговом окне Предварительный просмотр изменений отображается предварительный просмотр изменений, которые будут развернуты.

    Предварительный просмотр изменений в site. CSS

    Если дважды щелкнуть файл Web. config , в диалоговом окне Просмотр изменений отобразятся результаты преобразований конфигурации сборки и преобразования профиля публикации. На этом этапе вы не выполнили никаких действий, которые приведут к изменению файла Web. config на сервере, поэтому вы не увидите никаких изменений. Однако окно Просмотр изменений неправильно отображает два изменения. Похоже, что будут удалены два XML-элемента. Эти элементы добавляются процессом публикации при выборе Code First migrations выполнить в приложении для класса контекста Code First. Сравнение выполняется до того, как процесс публикации добавляет эти элементы, поэтому они выглядят как удаленные, хотя они не будут удалены. Эта ошибка будет исправлена в следующем выпуске.

  5. Щелкните Закрыть.

  6. Щелкните Опубликовать.

  7. Когда браузер откроется на домашней странице тестового сайта, нажмите клавиши CTRL + F5, чтобы вызвать жесткое обновление, чтобы увидеть результат изменения CSS.

    Воздействие изменения CSS

  8. Закройте браузер.

Публикация конкретных файлов из обозреватель решений

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

  1. Откройте содержимое/site. CSS и восстановите параметр background-color в значение #fff.

  2. В Обозреватель решенийщелкните правой кнопкой мыши файл Content/site. CSS .

    В контекстном меню отображаются три варианта публикации.

    Параметры публикации из обозреватель решений

  3. Щелкните Предварительный просмотр изменений в site. CSS.

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

    Дифф-контент/site. CSS

  4. В Обозреватель решенийщелкните правой кнопкой мыши site. CSS и выберите опубликовать site. CSS.

    Окно действия веб-публикации показывает, что файл опубликован.

    Окно действия веб-публикации

  5. Откройте браузер по URL-адресу http://localhost/contosouniversity, а затем нажмите клавиши CTRL + F5, чтобы вызвать жесткое обновление, чтобы увидеть результат изменения CSS.

    Домашняя страница с обычным CSS

  6. Закройте браузер.

Сводка

Теперь вы видели несколько способов развертывания обновления приложения, которое не затрагивает изменение базы данных, и вы узнали, как просмотреть изменения, чтобы проверить, что именно будет обновлено. На странице инструкторов теперь есть раздел « курсы обучения».

Страница инструкторов с учеными курсами

В следующем учебнике показано, как развернуть изменение базы данных. вы добавите поле «ДеньРождения» в базу данных и на страницу инструкторов.