Перенос веб-приложения или службы .NET в Службу приложений Azure

Служба приложений — это полностью управляемая вычислительная платформа, оптимизированная для размещения масштабируемых веб-сайтов и веб-приложений. В этой статье содержатся сведения о переносе существующего приложения в Cлужбу приложений Azure методом lift-and-shift, о рекомендуемых изменениях и дополнительных ресурсах для перемещения в облако. Большинство веб-сайтов ASP.NET (WebForms, MVC) и служб (веб-API, WCF) можно переместить в Службу приложений Azure без каких-либо изменений. Для некоторых могут потребоваться незначительные изменения, в то время как для других может понадобиться рефакторинг.

Готовы приступить к работе? Опубликуйте свое приложение ASP.NET + SQL в службе приложений Azure.

Рекомендации

Локальные ресурсы (включая SQL Server)

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

  • С помощью службы Виртуальная сеть Azure создайте сеть VPN для подключения Службы приложений к локальным ресурсам.
  • С помощью Azure Relay предоставьте облаку защищенный доступ к локальным службам, не внося изменения в брандмауэр.
  • Перенесите зависимости в Azure (например, базу данных SQL).
  • Для уменьшения количества зависимостей используйте облачные решения типа "платформа как услуга". Например, вместо подключения к локальному почтовому серверу используйте SendGrid.

Привязки портов

Служба приложений Azure поддерживает порт 80 для HTTP-трафика и порт 443 для HTTPS-трафика.

Для WCF поддерживаются такие привязки:

Привязка Примечания.
BasicHttp
WSHttp
WSDualHttpBinding Необходимо включить поддержку веб-сокетов.
NetHttpBinding Необходимо включить поддержку веб-сокетов для дуплексных контрактов.
NetHttpsBinding Необходимо включить поддержку веб-сокетов для дуплексных контрактов.
BasicHttpContextBinding
WebHttpBinding
WSHttpContextBinding

Проверка подлинности

Служба приложений Azure поддерживает анонимную аутентификацию по умолчанию. При необходимости можно настроить аутентификацию с помощью форм. Аутентификация Windows может использоваться только при интеграции с Azure Active Directory и ADFS. Подробнее об интеграции локальных каталогов с Azure Active Directory.

Сборки в глобальном кэше сборок (GAC)

Это не поддерживается. Рекомендуется скопировать необходимые сборки в папку приложения \bin. Нельзя использовать установленные на сервере пользовательские MSI-файлы (например, генераторы PDF).

Параметры служб IIS

Теперь все параметры приложения, которые традиционно настраиваются с помощью файла applicationHost.config, можно настроить на портале Azure. Это касается разрядности пула приложений, включения и отключения протокола WebSocket, версии управляемого конвейера, версии платформы .NET Framework (2.0 или 4.0) и других параметров. Чтобы изменить параметры приложения, перейдите на портал Azure, откройте колонку нужного веб-приложения и выберите вкладку Параметры приложения.

Режим совместимости с IIS5

Режим совместимости с IIS5 не поддерживается. В Службе приложений Azure каждое веб-приложение и все располагающиеся под ним приложения выполняются в одном и том же рабочем процессе с определенным набором пулов приложений.

Соответствие схеме IIS7+

Некоторые элементы и атрибуты не определены в схеме IIS Службы приложений Azure. При возникновении проблем рекомендуется использовать преобразования XDT.

Один пул приложений на сайт

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

Компоненты COM и COM+

Служба приложений Azure не разрешает регистрацию COM-компонентов на платформе. Если в приложении используются какие-либо COM-компоненты, их необходимо переписать в формате управляемого кода и развернуть вместе с сайтом или приложением.

Физические каталоги

Служба приложений Azure не разрешает доступ к физическим дискам. Возможно, для доступа к файлам по протоколу SMB потребуется служба Файлы Azure. Доступ к файлам в хранилище BLOB-объектов Azure осуществляется по протоколу HTTPS.

Фильтры ISAPI

Служба приложений Azure может поддерживать использование фильтров ISAPI, но для этого вместе с сайтом необходимо развернуть DLL-библиотеку ISAPI и зарегистрировать ее с помощью файла web.config.

HTTPS-привязки и SSL

HTTPS-привязки не переносятся, так же как и связанные с веб-сайтами SSL-сертификаты, но после переноса сайта SSL-сертификаты можно будет передать вручную.

SharePoint и FrontPage

Расширения SharePoint и серверные расширения FrontPage (FPSE) не поддерживаются.

Размер веб-сайта

Максимальный размер содержимого на бесплатном сайте не должен превышать 1 ГБ. Если размер сайта превышает 1 ГБ, необходимо перейти на платный SKU. См. цены на Службу приложений.

Размер базы данных

Для баз данных SQL Server см. цены на Базу данных SQL.

Интеграция с Azure Active Directory (AAD)

AAD не работает с бесплатными приложениями. Для использования AAD необходимо перевести приложение на платный SKU. См. цены на Службу приложений.

Мониторинг и диагностика

Решения для мониторинга и диагностики, которые вы используете сейчас в локальной среде, вряд ли будут работать в облаке. Но Azure предоставляет средства для ведения журнала, мониторинга и диагностики, позволяющие определять и устранять проблемы, связанные с веб-приложениями. Диагностику веб-приложения можно без труда включить в его конфигурации, а записи журналов доступны для просмотра в Azure Application Insights. Подробнее о включении ведения журнала диагностики для веб-приложений.

Строки подключения и параметры приложения

Рекомендуется использовать Azure Key Vault. Это служба, в которой надежно хранятся конфиденциальные сведения, используемые в вашем приложении. Кроме того, эти данные можно хранить в настройках службы приложений.

DNS

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

Служба приложений Azure с контейнерами Windows

Если приложение не удается перенести непосредственно в Службу приложений, попробуйте воспользоваться Службой приложений с контейнерами Windows. Это даст возможность использовать GAC, COM-компоненты, пакеты MSI, даст полный доступ к API-интерфейсам .NET FX, DirectX и др.

См. также