Пошаговое руководство. Развертывание проекта веб-приложения с помощью пакета веб-развертывания (часть 2 из 4)

Это второе пошаговое руководство в серии руководств, иллюстрирующих способы развертывания проекта веб-приложения с помощью пакета развертывания. Дополнительные сведения об этой серии см. в разделе Пошаговое руководство. Развертывание проекта веб-приложения с помощью пакета веб-развертывания (часть 1 из 4).

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

  • повторное развертывание уже развернутой базы данных;

  • исключение из развертывания уже развернутой базы данных;

  • создание пакета для конфигурации построения "Debug";

  • установка пакета на локальный компьютер с помощью диспетчера служб IIS.

Если нужно развернуть изменение базы данных (структуры или данных) в уже развернутое веб-приложение и если не нужно сохранять данные, веденные в развернутую базу данных, можно повторно развернуть базу данных с помощью автоматически созданных скриптов. Однако по умолчанию автоматически созданные скрипты не удаляют объекты базы данных, прежде чем создавать (или создавать повторно) их на целевом компьютере. Поэтому необходимо указать, что следует включить инструкции Drop, чтобы избежать ошибок при создании скриптами уже существующих объектов базы данных.

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

В следующей процедуре имя поля "Цвет" изменяется на Appearance в базе данных и в файле Default.aspx.

Изменение имени поля базы данных

  1. В Обозревателе сервера разверните папку App_Data и дважды щелкните файл AdventureWorksLT2008_Data.mdf.

    База данных откроется в окне Обозреватель сервера.

  2. В Обозревателе сервера разверните папку "Таблицы".

  3. Щелкните правой кнопкой мыши таблицу Продукт (SalesLT) и выберите команду Открыть определение таблицы.

  4. Измените имя столбца Цвет на Appearance, как показано в следующем примере.

    Окна свойств таблиц базы данных
  5. Сохраните таблицу и закройте окно Определение таблицы.

  6. Откройте файл Default.aspx.

  7. В элементе управления GridView найдите элемент BoundField для столбца Цвет и измените значение свойств DataField, SortExpression и HeaderText с "Цвет" на Appearance, как показано в следующем примере.

    <asp:BoundField DataField="Appearance" HeaderText="Appearance"
        SortExpression="Appearance" />
    
  8. Сохраните и закройте файл Default.aspx.

  9. Чтобы проверить изменения, нажмите комбинацию клавиш CTRL+F5.

    Отображается домашняя страница. Столбец Цвет переименован в Appearance, как показано на следующей иллюстрации.

    Домашняя страница Adventure Works со столбцом внешнего вида

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

Включение инструкций Drop

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

    Папка проекта открывается в окне Проводник.

  2. Откройте файл AdventureWorks.csproj или AdventureWorks.vbproj с помощью текстового редактора, например Блокнота.

  3. Найдите элемент PropertyGroup для конфигурации построения Debug и платформы AnyCPU.

    Этот элемент содержит параметры, введенные на вкладках Упаковка и публикация веб-проекта и Упаковка и публикация SQL-проекта в параметре Свойства проекта.

  4. В элементе PropertyGroup найдите элемент ObjectGroup с именем AWLTConnectionString-Deployment.

    Этот элемент содержит параметры с вкладки Упаковка и публикация SQL-проекта, относящиеся к базе данных AdventureWorksLT.

  5. В элементе ObjectGroup добавьте атрибут ScriptDropsFirst="True" в элементу PreSource, находящемуся в первом элементе Object.

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

    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
      ...
      <PublishDatabaseSettings>
      ...
        <Objects>
          ...
          <ObjectGroup Name="AWLTConnectionString-Web.config" Order="2">
            <Destination Path="..." />
            <Object Type="dbFullSql">
              <PreSource Path="..." ScriptSchema="True" 
                ScriptData="True" CopyAllFullTextCatalogs="False"  
                ScriptDropsFirst="True"/>
              <Source Path="..." Transacted="True" />
            </Object>
            <Object Type="dbFullSql" Enabled="True">
                <Source Path="...AdventureWorksGrant.sql" 
                  Transacted="True" />
            </Object>
          </ObjectGroup>
        </Objects>
      </PublishDatabaseSettings>
    </PropertyGroup>
    
  6. Сохраните и закройте файл AdventureWorks.csproj или AdventureWorks.vbproj.

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

    Диалоговое окно "Обнаружено изменение файла"

В следующей процедуре указывается, что не следует выполнять скрипты базы данных. Это включает автоматически созданный скрипт для базы данных ApplicationServices и скрипт AdventureWorksGrant.sql.

Запрет выполнения других скриптов при развертывании

  1. На странице Свойства проекта перейдите на вкладку Упаковка и публикация SQL-проекта.

  2. Убедитесь, что в списке Конфигурация выбран вариант Активная (Debug).

  3. Убедитесь, что в сетке Записи базы данных выбрана строка ApplicationServices-Deployment.

  4. В сетке Скрипты базы данных снимите флажок Включить для строки, содержащей значение [Автоматически созданные схема и данные] в столбце Путь скрипта, как показано на следующей иллюстрации.

    Вкладка "Упаковка и публикация SQL-проекта" с исключенным скриптом
  5. В сетке Записи базы данных выберите строку AWLTConnectionString-Deployment.

  6. В сетке Скрипты базы данных снимите флажок Включить в строке, содержащей скрипт AdventureWorksGrant.sql.

  7. Сохраните и закройте страницу Свойства.

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

Создание пакета и его импорт в службы IIS

  1. В меню Проект выберите команду Построить пакет развертывания.

    Visual Studio выполняет построение проекта и создает пакет развертывания. Скрипты, содержащие инструкции Drop, создаются для базы данных AdventureWorksLT. Для базы данных ApplicationServices скрипты не создавались.

  2. Скопируйте путь пакета развертывания в буфер обмена Windows, выполнив следующие действия.

    1. Если папка obj не отображается в Обозревателе решений, нажмите кнопку Показать все файлы.

    2. Последовательно разверните папки "obj", "Debug" и "Package".

    3. Выберите файл AdventureWorks.zip.

    4. В окне Свойства скопируйте значение поля Полный путь.

  3. В панели управления Windows щелкните Администрирование и выберите Диспетчер служб IIS.

  4. На панели Подключения диспетчера служб IIS разверните узел для вашего компьютера, разверните папку Сайты и выберите пункт Веб-сайт по умолчанию.

  5. На панели Действия щелкните гиперссылку Импорт приложения.

  6. Скопируйте путь к пакету развертывания в поле Путь к пакету диалогового окна Выбор пакета.

  7. Нажмите кнопку Далее.

  8. В диалоговом окне Выбор содержимого пакета нажмите кнопку Далее.

  9. В диалоговом окне Ввод данных о пакете приложения нажмите кнопку Далее.

  10. В диалоговом окне Перезаписывать существующие файлы нажмите кнопку Далее.

    После завершения установки пакета диалоговое окно Ход установки и сводка показывает, что была обновлена только одна база данных, как показано на следующей иллюстрации.

    Диалоговое окно "Ход установки и сводка"
  11. Чтобы проверить приложение, откройте браузер и введите следующий URL-адрес.

    http://localhost/AdventureWorks

    Отображается страница Default.aspx. Она выглядит так же, как при запуске проекта в Visual Studio. В таблице продуктов вместо столбца Цвет отображается столбец Appearance. Это означает, что изменение базы данных AdventureWorksLT успешно развернуто.

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

В следующей процедуре изменяется заголовок первого столбца таблицы продуктов AdventureWorksLT на странице Default.aspx с Name на Product.

Изменение приложения

  1. Откройте файл Default.aspx.

  2. Измените свойство BoundField.HeaderText столбца Name на Product, как показано в следующем примере.

    <asp:BoundField DataField="Name" HeaderText="Product" 
      SortExpression="Name" />
    
  3. Сохраните и закройте файл.

В следующей процедуре изменяются параметры развертывания базы данных, чтобы система Visual Studio не создавала дополнительные скрипты базы данных.

Отключение развертывания базы данных

  1. В Обозревателе решений щелкните правой кнопкой мыши проект и выберите пункт Свойства.

  2. Перейдите на вкладку Упаковка и публикация веб-проекта.

  3. Снимите флажок Включить все базы данных, настроенные на вкладке "Упаковка и публикация SQL-проекта".

  4. Сохраните и закройте страницу Свойства.

В следующей процедуре выполняется повторное развертывание приложения и проверка изменений.

Повторное развертывание и проверка приложения

  1. В меню Проект выберите команду Построить пакет развертывания.

  2. Скопируйте путь к пакету развертывания в буфер обмена Windows.

  3. Запустите Диспетчер служб IIS.

  4. В диспетчере служб IIS выберите Веб-сайт по умолчанию.

  5. На панели Действия щелкните гиперссылку Импорт приложения.

  6. Скопируйте путь к пакету развертывания в поле Путь к пакету диалогового окна Выбор пакета.

  7. Нажмите кнопку Далее.

  8. В диалоговом окне Выбор содержимого пакета нажмите кнопку Далее.

  9. В диалоговом окне Ввод данных о пакете приложения нажмите кнопку Далее.

  10. В диалоговом окне Перезаписывать существующие файлы нажмите кнопку Далее.

    Теперь диалоговое окно Ход установки и сводка показывает, что базы данных не обновлялись, был обновлен только один файл.

  11. Чтобы проверить приложение, откройте браузер и введите следующий URL-адрес.

    http://localhost/AdventureWorks

    Страница Default.aspx снова выглядит так же, как при запуске проекта в Visual Studio. Так как в первом столбце таблицы продуктов отображается заголовок Product, изменения в файла Default.aspx было успешны развернуты.

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

Следующим пошаговым руководством данной серии является Пошаговое руководство. Развертывание проекта веб-приложения с помощью пакета веб-развертывания (часть 3 из 4). В этом пошаговом руководстве создается пакет развертывания, который используется для развертывания в среде промежуточного хранения и на рабочий сервер.

Показ: