Перенос веб-приложения или службы .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 и др.