Skip to main content
Краткое руководство по написанию кода: создание и развертывание приложения ASP.NET в Windows Azure
Рейтинг 

Платформа Windows Azure

Ниже приводятся этапы создания базового приложения ASP.NET и развертывания его в Windows Azure. Это пошаговое руководство предназначено для разработчиков на C#, которые еще не работали с платформой Windows Azure. Перед продолжением убедитесь, что соблюдены предварительные условия, перечисленные в документе Windows Azure: краткое руководство по написанию кода.

Совет

Если у вас нет подписки на Windows Azure, вы можете узнать о разработке на Windows Azure, выполняя процедуры в этом документе до раздела развертывания приложения в Windows Azure.

Помимо создания, отладки и развертывания приложения будут использоваться и объясняться следующие инструменты и службы Windows Azure:

  • веб-роль Windows Azure;
  • эмулятор вычислений Windows Azure;
  • пакет служб Windows Azure;
  • портал управления Windows Azure, http://windows.azure.com.

Создание и развертывание приложения ASP.NET в Windows Azure

Чтобы создать и запустить приложение ASP.NET в Windows Azure, выполните следующие действия.

  1. Запустите Microsoft Visual Studio 2010 от имени администратора. Для этого щелкните Microsoft Visual Studio 2010 правой кнопкой мыши и выберите команду Run as administrator («Запуск от имени администратора»).
  2. Выберите в меню File («Файл») команду New («Создать»), а затем — пункт Project («Проект»).
  3. В диалоговом окне New Project («Создать проект») выберите Installed Templates («Установленные шаблоны»), Visual C#, а затем щелкните Cloud («Облако»).
  4. Щелкните Windows Azure Project («Проект Windows Azure»). При необходимости измените поле Location: («Расположение:»), которое указывает место хранения решения. Нажмите кнопку OK («ОК»), чтобы закрыть диалоговое окно New Project («Создать проект»).
  5. В диалоговом окне New Windows Azure Project («Создать проект Windows Azure») перейдите к Visual C#, щелкните ASP.NET Web Role («Веб-роль ASP.NET»), а затем щелкните символ >. Веб-роль будет добавлена к решению Windows Azure. Веб-роль предоставляет среду для выполнения веб-сайтов или приложений в соответствии с поддержкой служб IIS 7.0. Нажмите кнопку OK («ОК»), чтобы закрыть диалоговое окно New Windows Azure Project («Создать проект Windows Azure»).
  6. [Не обязательно.] На данном этапе можно скомпилировать и запустить приложение. Однако можно также настроить текст, отображаемый в приложении, изменив файл Default.aspx. Это не приведет к фундаментальному изменению приложения, но позволит понять, насколько это приложение походит на традиционное (необлачное) приложение ASP.NET. Чтобы изменить файл Default.aspx, откройте обозреватель решений. Если окно Solution Explorer («Обозреватель решений») не отображается, выберите в меню View («Вид») пункт Solution Explorer («Обозреватель решений»). В обозревателе решений разверните узел WebRole1 и дважды щелкните файл Default.aspx. Между тегами Div введите текстовую строку, например Welcome to ASP.NET in Windows Azure!. Ниже приводится пример файла Default.aspx с текстовой строкой:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebRole1._Default" %>

<!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 runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        Welcome to ASP.NET in Windows Azure!
    </div>
    </form>
</body>
</html>
Save and close Default.aspx.
  • Скомпилируйте и запустите приложение, выбрав в меню пункт Debug («Отладка») и щелкнув  Start Without Debugging («Запуск без отладки»).

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

Перед локальной отладкой приложения рассмотрим два файла из тех, что были автоматически созданы Visual Studio при создании проекта. Это файлы ServiceDefinition.csdef и ServiceConfiguration.cscfg. (В рамках данного пошагового руководства никакие значения в этих двух файлах изменяться не будут.) Расширение .csdef соответствует файлам определения облачных служб, расширение .cscfg — файлам конфигурации облачных служб. Изучить их можно в обозревателе решений. В основном файл ServiceDefinition.csdef содержит метаданные, используемые платформой Windows Azure при размещении приложения, включая, например, роли, имеющиеся в данном приложении. В файле ServiceConfiguration.cscfg содержатся параметры конфигурации для приложения, а также число экземпляров, выполняемых для каждой роли. Более подробные сведения о файлах ServiceDefinition.csdef и ServiceConfiguration.cscfg см. в статье Настройка приложения Windows Azure в Visual Studio. Закройте файлы ServiceDefinition.csdef и ServiceConfiguration.cscfg, если они все еще открыты в Visual Studio.

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

  1. Перед выполнением приложения в облаке оно пройдет локальное тестирование (на рабочей станции разработки). Если приложение по-прежнему выполняется в результате действий на предыдущих этапах, закройте его.
  2. В Visual Studio откройте файл WebRole.cs. Это можно сделать в обозревателе решений, развернув узел WebRole1 и дважды щелкнув файл WebRole.cs.
  3. Щелкните правой кнопкой мыши следующую строку кода:

    return base.OnStart();

    щелкните Breakpoint («Точка останова»), а затем Insert Breakpoint («Вставить точку останова»).

  4. Нажмите клавишу F5, чтобы запустить отладчик Visual Studio.
  5. Точка останова, задаваемая в строке кода base.OnStart();, предписывает запуск браузера для приложения и остановку Visual Studio в данной точке останова. Это показывает, что можно использовать обычную отладку Visual Studio при локальном выполнении приложения. Однако можно использовать и эмулятор вычислений Windows Azure. Эмулятор вычислений позволяет выполнять такие задачи, как просмотр выполняемого экземпляра локального развертывания. При отладке проекта Windows Azure эмулятор вычислений должен запускаться автоматически. Чтобы запустить эмулятор вычислений вручную, в Windows нажмите кнопку «Пуск», выберите Все программы, щелкните Windows Azure SDK v1.4, а затем Compute Emulator. В области уведомлений панели задач Windows должен появиться значок Windows Azure для эмулятора вычислений.
  6. Щелкните его правой кнопкой мыши и выберите команду Show Compute Emulator UI («Показать интерфейс эмулятора вычислений»). Откроется пользовательский интерфейс эмулятора вычислений. В интерфейсе эмулятора разверните узел Service Deployments («Развертывания служб»). При дальнейшей навигации по этому узлу можно увидеть локальное развертывание, соответствующее отлаживаемому приложению. При щелчке данного развертывания появится консольное представление диагностической информации от приложения и его взаимодействий со средой разработки. Например, если отладчик ожидает продвижения со строки кода base.OnStart();, появится следующая строка диагностики:

[runtime] Role entrypoint . CALLING OnStart()

Это сообщение вызывается платформой Windows Azure при вызове метода OnStart() для веб-роли. Если вы продолжите движение отладчика через строку кода base.OnStart();, нажимая клавишу F5 в Visual Studio, то появятся следующие диагностические сообщения:

[runtime] Role entrypoint . COMPLETED OnStart()

[runtime] Role entrypoint . CALLING Run()

Если отладчик Visual Studio все еще выполняется, закройте его, выбрав в меню пункт Debug («Отладка») и щелкнув  Stop Debugging («Остановить отладку»). Закройте и эмулятор вычислений.

Веб-роль в приложении является производной класса RoleEntryPoint, который содержит методы OnStart(), OnStop() и Run(). Методы OnStart(), OnStop() и Run() можно переопределить в соответствии с потребностями приложения. Дополнительные сведения о RoleEntryPoint см. в документе Обзор создания приложения, выполняемого в размещенной службе.

Далее будет выполнено развертывание приложения в облаке с помощью портала управления Windows Azure.

Чтобы развернуть приложение в Windows Azure, выполните следующие действия.

  1. Перед развертыванием приложения необходимо отправить пакет служб и файл конфигурации службы. Для этого в обозревателе решений Visual Studio щелкните правой кнопкой мыши имя проекта (например, WindowsAzureProject1), а затем щелкните Publish… («Опубликовать»).
  2. В диалоговом окне Deploy Windows Azure project («Развернуть проект Windows Azure») щелкните Create Service Package Only («Создать только пакет служб») и нажмите кнопку OK («ОК»).
  3. Если компиляция выполнена успешно, в Visual Studio откроется папка, содержащая два файла, которые были созданы в рамках процесса публикации. Это файлы ServiceConfiguration.cscfg (ранее рассмотренный в данном разделе) и <Название_проекта>.cspkg (например, WindowsAzureProject1.cspkg). Расширение .cspkg соответствует файлам пакетов служб. Файл пакета содержит определение службы, а также двоичные файлы и другие элементы для развертываемого приложения. Запишите путь к этим файлам, поскольку он будет запрошен при развертывании приложения с помощью портала управления Windows Azure.
  4. Войдите на портал управления Windows Azure, чтобы развернуть приложение. Войдите на сайт http://windows.azure.com.
  5. На портале управления Windows Azure щелкните Hosted Services, Storage Accounts, and CDN («Размещенные службы, учетные записи хранилищ и сеть доставки содержимого»).
  6. Щелкните New Hosted Service («Создать размещенную службу»).
  7. Выберите подписку, которая будет использоваться для этого приложения.
  8. Введите имя приложения. Оно будет использоваться для различения служб на портале управления Windows Azure для указанной подписки.
  9. Введите URL-адрес приложения. Портал управления Windows Azure обеспечивает уникальность URL-адреса в рамках платформы Windows Azure (один и тот же адрес не может использоваться разными приложениями).
  10. Выберите регион из списка.
  11. Выберите Deploy to stage environment («Развернуть в подготовительную среду»).
  12. Убедитесь, что флажок Start after successful deployment («Запустить после успешного развертывания») установлен.
  13. Введите имя развертывания.
  14. Для параметра Package location («Расположение пакета») нажмите кнопку Browse Locally… («Обзор локальных папок...»), перейдите к папке хранения файла <Название_проекта>.cspkg и щелкните этот файл.
  15. Для параметра Configuration file («Файл конфигурации») нажмите соответствующую кнопку Browse Locally… («Обзор локальных папок...»), перейдите к папке хранения файла ServiceConfiguration.cscfg и щелкните этот файл.
  16. Нажмите кнопку OK («ОК»). После нажатия этой кнопки появится предупреждение, поскольку  для данного приложения задан только один экземпляр веб-роли (этот параметр содержится в файле ServiceConfiguration.cscfg). В целях данного пошагового руководства игнорируйте это предупреждение, нажав кнопку Yes («Да»), но учтите, что для повышения надежности приложения, вероятно, потребуется несколько экземпляров веб-роли.

Для отслеживания состояния развертывания на портале управления Windows Azure перейдите к разделу Hosted Services («Размещенные службы»). Поскольку развертывание выполнялось в подготовительной среде, DNS будет иметь вид http:// <guid>.cloudapp.net. Для просмотра имени DNS щелкните имя развертывания на портале управления Windows Azure (для отображения имени развертывания может потребоваться щелкнуть узел Hosted Service); имя DNS будет в правой области портала. Когда статус развертывания на портале управления Windows Azure изменится на Ready («Готово»), можно ввести в браузер DNS-имя (или щелкнуть его в портале управления Windows Azure) и увидеть, что приложение развернуто в облаке.

Хотя в данном пошаговом руководстве рассматривалось развертывание в подготовительной среде, развертывание в производственной среде проходит те же этапы: нужно лишь выбрать соответствующий тип среды (производственную вместо подготовительной). При развертывании в производственной среде создается имя DNS на основе выбранного URL-адреса, а не GUID, как в подготовительной среде.

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

Важно!

Если не возникло никаких ошибок, на данном этапе приложение Windows Azure будет развернуто в облаке. Однако перед продолжением следует знать, что развернутое приложение, даже не выполняясь, будет учитываться в оплачиваемом времени подписки. Поэтому крайне важно удалить нежелательные развертывания из подписки Windows Azure. Чтобы удалить развертывание, сначала остановите его на портале управления Windows Azure, а затем удалите. Следующие этапы выполняются на портале управления Windows Azure в разделе размещенных служб. Перейдите к развертыванию, выберите его, а затем щелкните значок Stop («Остановить»). После остановки удалите его, щелкнув значок Delete («Удалить»). Если не удалить развертывание, оно будет подлежать оплате даже в остановленном состоянии.

Как было упомянуто выше, в данном пошаговом руководстве использовалась веб-роль приложения. Windows Azure также предоставляет рабочую роль — среду общего назначения для выполнения рабочих нагрузок службы. Обычно веб-роль обрабатывает пользовательский интерфейс службы, а рабочая роль служит для фоновой обработки.