Поделиться через


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

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

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

Соображения

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

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

  • Создайте VPN-подключение службы приложений к локальным ресурсам с помощью виртуальных сетей Azure.
  • Безопасно предоставлять локальные службы в облако без изменений брандмауэра с помощью Azure Relay.
  • Перенос зависимостей, таких как база данных SQL в Azure.
  • Используйте предложения платформы как услуга в облаке для уменьшения зависимостей. Например, вместо подключения к локальному почтовому серверу рекомендуется использовать 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. Это относится к битности AppPool, включению и отключению WebSockets, управляемой версии конвейера, версии .NET Framework (2.0/4.0) и т. д. Чтобы изменить параметры приложения, перейдите на портал Azure, откройте панель вашего веб-приложения и откройте вкладку Параметры приложения.

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

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

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

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

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

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

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

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

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

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

Фильтры ISAPI

Служба приложений Azure может поддерживать использование фильтров ISAPI, однако библиотека DLL ISAPI должна быть развернута на вашем сайте и зарегистрирована через web.config.

Привязки HTTPS и SSL

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

SharePoint и FrontPage

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

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

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

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

Для баз данных SQL Server проверьте текущие цены на базу данных SQL.

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

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

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

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

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

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

DNS (Система доменных имён)

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

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

Если приложение нельзя перенести непосредственно в службу приложений, рассмотрите возможность использования службы приложений с помощью контейнеров Windows, что позволяет использовать GAC, компоненты COM, MSIs, полный доступ к API .NET FX, DirectX и т. д.

См. также