Microsoft Azure PaaS для .NET приложений
В данный момент мы наблюдаем трансформацию IT-отрасли, вызванную внедрением облачных вычислений (Cloud computing). IT-департаменты компаний меняют свою роль и круг ответственности, благодаря использованию инфраструктуры как сервиса (Infrastructure as a Service, IaaS) и программных сервисов (Software as a Service, SaaS). Развивающаяся концепция платформы приложений как сервиса (Platform as a Service, PaaS) меняет подходы к разработке программного обеспечения. Изменяется рабочее окружение (runtime environment) приложений, ключевые функции переносятся с локальных компонентов на программные сервисы, меняются модели развертывания, процессы тестирования и диагностики.
В компании Sitecore мы адаптировали основной продукт — Sitecore Experience Platform для запуска на платформе Azure PaaS с возможностью развертывания из Azure Marketplace. В данной статье мы проведем обзор возможностей Microsoft Azure PaaS и сервиса Azure App Service, а также рассмотрим некоторые практические аспекты миграции распределенного .NET приложения на примере Sitecore.
Что предоставляет Microsoft Azure для разработчиков приложений
Microsoft Azure является платформой для разработки приложений и, в соответствии с моделью PaaS, предоставляет инструменты разработки, операционную среду (runtime environment) и набор облачных сервисов, которые предоставляют готовые решения для типовых задач при построении приложений. Microsoft Azure также предоставляет прикладные интерфейсы и инструменты размещения ресурсов и управления.
В качестве инструментов разработки выступают Microsoft Visual Studio с установленным Microsoft Azure SDK, богатый набор пакетов интеграции в репозитории nuget.org, а также сервис Visual Studio Online, предоставляющий платформу управления проектом и исходным кодом, а также сборки, развертывания и тестирования приложения.
В качестве операционного окружения выступают сервисы Azure Virtual Machines, Azure Cloud Services и Azure App Service, которые отличаются уровнем контроля, легкостью развертывания и гибкостью масштабирования:
- Сервис Azure VM предоставляет абстракцию аппаратного обеспечения и лицензию на операционную систему (иногда — с предустановленным программным обеспечением). Разработчик и администратор получают полный доступ ко всем функциям операционной системы, однако должны сами решать вопросы развертывания приложения, безопасности, поддержки, устойчивости к отказам и масштабирования.
- Сервис Azure Cloud Services предоставляет операционную систему для запуска приложения, включая обновления, защиту от вирусов, поддержку горизонтального масштабирования (scale out) и устойчивости к отказам. Сервис ограничивает возможности разработчика и администратора, т.к. любые изменения кода приложения и большинство изменений конфигурации требуют повторного развертывания приложения.
- Сервис Azure App Service предоставляет абстракцию операционной среды, т.н. песочницу (sandbox) для запуска веб-приложений. Сервис позволяет легко размещать приложения, а также масштабировать как вертикально (scale up), так и горизонтально (scale out). Разработчик или администратор получает полный доступ к файлам приложения и конфигурации веб-сервера.
Облачные сервисы, входящие в состав Microsoft Azure, призваны решать типовые задачи, которые встают перед разработчиками приложений. В таблице ниже приведены возможные задачи, примеры их решения в локальной среде (on premise), а также сервисы Microsoft Azure, которые предоставляют необходимую функциональность.
| Функция | Примеры локальной реализации | Сервисы от Microsoft Azure |
| Операционное окружение | Windows Server, HyperV | Azure App Service, Azure Cloud Services, Azure VM |
| Реляционная база данных | Microsoft SQL Server, Oracle Database | Azure SQL |
| NOSQL база данных | MongoDB, CouchDB | Azure Table Storage, Azure DocumentDB/a> |
| Файловое хранилище | Windows File Server | Azure Blob Storage, Azure File Storage |
| Выполнение фоновых задач | Windows Services | Web Jobs |
| Индексирование и поиск данных | Solr, ElasticSearch | Azure Search Service |
| Хранение секретов/паролей | CryptoAPI, Microsoft Active Directory | Azure Key Vault |
| Очереди сообщений, обработка событий, пакетная обработка | MSMQ, RabbitMQ | Azure Storage Queues, Azure Service Bus, Azure Event Hubs |
| Идентификация пользователей | Microsoft Active Directory | Azure Active Directory |
| Диагностика и телеметрия | Windows Event Log, Windows Performance Counters | Application Insights, Windows Azure Diagnostics |
*Данные примеры приведены для иллюстрации не обязательно являются полными аналогами сервисов Microsoft Azure
Кроме функциональных сервисов Microsoft Azure предоставляет инфраструктурные сервисы, позволяющие реализовать глобальные высокопроизводительные приложения:
| Функция | Сервисы от Microsoft Azure |
| Глобальное распределение трафика | Azure Traffic Manager |
| Сеть доставки контента (CDN) | Azure CDN |
| Распределение нагрузки и маршрутизация веб-трафика | Azure Application Gateway |
Для управления службами и выделения ресурсов Microsoft Azure предоставляет как графический интерфейс portal.azure.com, так и наборы интерфейсов Azure Service Management, Azure Resource Manager, модуль Azure PowerShell и инструмент Azure CLI.
Обзор Azure App Service
Сервис Azure App Service (ранее Azure Web Sites) является самым молодым и активно развивающимся вариантом операционной среды в платформе Microsoft Azure. Сервис предоставляет поддержку выполнения веб-приложений и прикладных служб (API Services), использующих различные технологии, и ориентирован на легкость развертывания (deployment), конфигурирования, диагностики и масштабирования приложений. В то же время имеют место существенные ограничения для приложений, выполняемых в среде Azure App Service.
Существует несколько способов размещения приложений в Azure App Service, которые обеспечивают совместимость с различными технологиями и сценариями разработки веб-приложений:
- Размещение через FTP будет знакомо пользователям веб-отелей и услуг хостинга. Этот способ также является частью интеграции с различными средами разработки: Eclipse, XCode, IntelliJ Idea, NetBeans.
- Размещение через Web Deploy является основным способом при использовании Microsoft Visual Studio для разработки .NET веб-приложений. Web Deploy является универсальным инструментом синхронизации содержимого и конфигурации веб-сайтов в Microsoft IIS и часто используется разработчиками и администраторами для управления локальными серверами.
- Размещение через Git или синхронизацию папок с использованием механизма Kudu (Kudu Deployment Engine). Этот способ может использоваться во множестве сценариев разработки приложения и поддерживает автоматическое выполнение задач сборки и развертывания на стороне Azure App Service. Например, можно настроить обновление приложения через синхронизацию с папкой (Dropbox или OneDrive) или внешним Git репозиторием (Github или Bitbucket). Можно обновить код приложения через git push непосредственно из локального репозитория или как часть процесса непрерывного развертывания (continuous deployment).
Azure App Service поддерживает размещение нескольких экземпляров приложения в так называемых слотах (deployment slots) с возможностью горячего переключения (hot swap) между слотами. Это позволяет реализовать поэтапное развертывание (staged deployment) приложения с возможностью отката (rollback) и тестирование новых функций в промышленных условиях без вмешательства в работу основного экземпляра приложения.
При использовании Azure App Service конфигурирование приложения происходит через изменение настроек (Application Settings) и строк подключения (Connection Strings) в свойствах службы Azure App Service. Таким образом рабочая конфигурация приложения хранится отдельно от файлов приложения, что повышает безопасность всего решения. Настройки передаются приложению через переменные окружения, а также доступны для .NET приложений через свойства ConfigurationManager.AppSettings и ConfigurationManager.ConnectionStrings. Технология ASP.NET Core предоставляет собственный механизм получения конфигурации.
Для диагностики приложений Azure App Service предоставляет несколько инструментов:
- Расширенные инструменты Kudu позволяют просмотреть файлы приложения и рабочее окружение, а также провести профилирование производительности с помощью проводника процессов. Инструменты доступны из портала Microsoft Azure или по адресу https://.scm.azurewebsites.net/.
- Azure App Service Editor является реализацией интерфейса Visual Studio Code в окне браузера и позволяет просматривать и редактировать файлы приложения, отслеживать диагностические сообщения (diagnostic trace) в реальном времени и выполнять задачи в командной строке. Редактор доступен из портала Microsoft Azure или по адресу https://.scm.azurewebsites.net/dev/wwwroot/
- Интеграция Microsoft Visual Studio позволяет просматривать диагностические сообщения в режиме онлайн и отлаживать приложение непосредственно в окружении Azure App Service.
- Часть диагностических сообщений приложения доступна через FTP в папке /LogFiles/Application.
Следует отметить, что инструменты Azure App Service взаимодействуют с подсистемой System.Diagnostics.Trace приложений .NET. Это важно учитывать, если приложение использует другие технологии для протоколирования событий, такие как log4net или Serilog.
Гибкость масштабирования приложений обеспечивается динамической привязкой к хостинг плану. Хостинг план представляет собой вычислительный ресурс: некоторое количество выделенных виртуальных машин с определенными характеристиками или место в общем пространстве хостинга. Параметры хостинг плана, а также привязку приложений можно менять без повторного развертывания приложения.
Все приложения Azure App Service получают доменное имя .azurewebsites.net и поддержку HTTPS с использованием SSL/TLS сертификата *.azurewebsites.net, что облегчает размещение полнофункциональных тестовых окружений. Для промышленных окружений поддерживается настройка доменных имен и собственных SSL/TLS сертификатов.
Практические аспекты миграции .NET приложения на платформу Azure PaaS
При миграции Sitecore Experience Platform на платформу Azure основной целью была максимальная интеграция и легкость развертывания, чтобы можно было опираться на существующий опыт пользователей при работе с Microsoft Azure. Одной из задач была возможность интеграции с Azure Marketplace.
В процессе миграции был решен комплекс задач:
- коррекция функциональности приложения для совместимости с Azure App Service;
- реализация отдельных функций с использованием служб Microsoft Azure;
- реализация развертывания приложения в Azure;
- организация процесса автоматической сборки и тестирования.
Среда Azure App Service предоставляет множество преимуществ, однако накладывает существенные ограничения на функциональность приложений. Некоторые ограничения, для которых нам пришлось написать собственное решение:
- Подсистема COM ограничена запуском только стандартных компонентов в процессе приложения. Например, не поддерживается запуск компонента Internet Explorer WebBrowser.
- Не поддерживаются большинство функций графического интерфейса и оболочки Windows Shell. Например, невозможно получить значки типов файлов для использования в пользовательском интерфейсе.
- Не поддерживается запись в реестр Windows, и, как следствие, не поддерживаются счетчики производительности.
- Ограничение на количество активных TCP соединений может привести к сбоям в работе приложения.
Отдельно следует отметить организацию файловой системы в среде AzureApp Service, которая привела к пересмотру взаимодействия приложения с диском:
- Системный диск C:\ доступен только для чтения и запуска приложений.
- Диск данных D:\ содержит рабочие данные системы, а также две папки приложения:
- Папка D:\home является корневой папкой приложения и содержит файлы приложения, расширений, протоколы событий и т.д. Папка доступна для чтения и записи, однако размещена на сетевом диске и, как следствие, имеет низкую производительность ввода/вывода. Кроме того, при масштабировании приложения следует учитывать, что все экземпляры приложения взаимодействуют с одной копией папки D:\home.
- Папка D:\local предоставлена для хранения временных данных, размещена на локальном диске и имеет высокую производительность ввода/вывода. Каждый экземпляр приложения работает с собственным экземпляром папки D:\local, и содержимое папки теряется при каждом перезапуске приложения. Кроме того, папка D:\local по умолчанию не доступна из редактора Azure App Service Editor или инструментов диагностики Kudu. Это ограничение можно временно обойти, установив следующее значение в настройках приложения (Application Settings): WEBSITE_DISABLE_SCM_SEPARATION=true.
Среди интеграций со службами Microsoft Azure можно отметить сбор телеметрии приложения с помощью Microsoft Application Insights. Инструментарий Application Insights SDK легко интегрируется с ASP.NET приложениями и предоставляет функции захвата сообщений диагностики (trace), необработанных исключений, запросов ASP.NET и обращений к SQL базам данных и сторонним веб-службам. В процессе интеграции мы реализовали сбор значений счетчиков производительности и маршрутизацию диагностических сообщений через System.Diagnostics.Trace. Все сообщения телеметрии маркируются идентификатором окружения и ролью экземпляра приложения для облегчения диагностики.
Для развертывания конфигураций Sitecore Experience Platform в Microsoft Azure был использован механизм Azure Resource Manager (ARM) templates. Мы создали шаблоны развертывания (deployment templates) для каждой из четырех поддерживаемых конфигураций: от 1 веб-приложения в минимальной конфигурации до 4 связанных веб-приложений с поддержкой масштабирования в наиболее сложной конфигурации. Каждый шаблон размещает необходимые базы данных, SQL сервера, службы Redis Cache, Application Insights и Azure Search, и приложения Azure App Service, предоставляя полностью готовое окружение для начала работы.
Для создания установочных пакетов приложения был создан инструментарий упаковки, основанный на Microsoft Web Deploy и SQL Server Data-tier Application Framework (DAC FX).
Использование ARM позволило существенно упростить процесс развертывания сложных конфигураций, что в свою очередь упростило процесс создания тестовых окружений. В комбинации с расширениями системы непрерывной интеграции это позволило организовать процесс непрерывного тестирования системы на платформе Microsoft Azure. Azure Resource Manager также является механизмом размещения ресурсов в Azure Marketplace.
Заключение
Платформа Microsoft Azure предоставляет широкий спектр инструментов разработки и программных сервисов для создания веб-приложений. Это позволяет успешно размещать в Microsoft Azure распределенные веб-приложения с богатым функционалом.
Ссылки
- Сравнение моделей облачных сервисов: www.ibm.com/. ry/cl-cloudservices2paas
- Сравнение операционных сред Microsoft Azure: docs.microsoft.com/. web-site-cloud-service-vm
- Список ограничений Azure App Service: github.com/. iki/Azure-Web-App-sandbox
Все про українське ІТ в телеграмі — підписуйтеся на канал DOU
Как удалить AppService
AppService.exe — это исполняемый файл (программа) для Windows. Расширение имени файла .exe — это аббревиатура от англ. слова executable — исполнимый. Необходимо запускать исполняемые файлы от проверенных производителей программ, потому что исполняемые файлы могут потенциально изменить настройки компьютера или нанести вред вашему компьютеру. Бесплатный форум с информацией о файлах может помочь вам разобраться является ли AppService.exe вирусом, трояном, программой-шпионом, рекламой, которую вы можете удалить, или файл принадлежит системе Windows или приложению, которому можно доверять.
Вот так, вы сможете исправить ошибки, связанные с AppService.exe
- Используйте программу Настройщик Windows, чтобы найти причину проблем, в том числе и медленной работы компьютера.
- Обновите программу FoneLabAppService. Обновление можно найти на сайте производителя (ссылка приведена ниже).
- В следующих пунктах предоставлено описание работы AppService.exe.
Информация о файле AppService.exe
Описание: AppService.exe не является необходимым для Windows. Файл AppService.exe находится в подпапках «C:\Program Files» или иногда в подпапках диска C:\. Известны следующие размеры файла для Windows 10/11/7 88,024 байт (15% всех случаев), 81,512 байт и еще 19 варианта .
Нет более детального описания программы. Это не файл Windows. Процесс начинает работать вместе с Windows (Смотрите ключ реестра: MACHINE\Run ). Сертифицировано надежной компанией. У процесса нет видимого окна. Процесс слушает или шлет данные на открытые порты в сети или по интернету. Поэтому технический рейтинг надежности 58% опасности.
Разработчик Gmail предоставляет сайт поддержки для помощи [1][2] , и деинсталлятор (Панель управления ⇒ Установка и удаление программ ⇒ FoneLab или FonePaw iPhone Data Recovery).Если AppService.exe находится в подпапках «C:\Users\USERNAME», тогда рейтинг надежности 46% опасности. Размер файла 125,440 байт. Это не файл Windows. Нет информации о создателе файла. Приложение не видно пользователям. AppService.exe представляется сжатым файлом.
Важно: Некоторые вирусы маскируют себя как AppService.exe, особенно, если они расположены в каталогах c:\windows или c:\windows\system32. Таким образом, вы должны проверить файл AppService.exe на вашем ПК, чтобы убедиться, что это угроза. Мы рекомендуем Security Task Manager для проверки безопасности вашего компьютера.
Комментарий пользователя
Пока нет комментариев пользователей. Почему бы не быть первым, кто добавить небольшой комментарий и одновременно поможет другим пользователям?
Лучшие практики для исправления проблем с AppService
Аккуратный и опрятный компьютер — это главное требование для избежания проблем с AppService. Для этого требуется регулярная проверка компьютера на вирусы, очистка жесткого диска, используя cleanmgr и sfc /scannow, удаление программ, которые больше не нужны, проверка программ, которые запускаются при старте Windows (используя msconfig) и активация Автоматическое обновление Windows. Всегда помните о создании периодических бэкапов, или в крайнем случае о создании точек восстановления.
Если у вас актуальные проблемы, попробуйте вспомнить, что вы делали в последнее время, или последнюю программу, которую вы устанавливали перед тем, как появилась впервые проблема. Используйте команду resmon, чтобы определить процесс, который вызывает проблемы. Даже если у вас серьезные проблемы с компьютером, прежде чем переустанавливать Windows, лучше попробуйте восстановить целостность установки ОС или для Windows 8 и более поздних версий Windows выполнить команду DISM.exe /Online /Cleanup-image /Restorehealth. Это позволит восстановить операционную систему без потери данных.
Следующие программы могут вам помочь для анализа процесса AppService.exe на вашем компьютере: Security Task Manager отображает все запущенные задания Windows, включая встроенные скрытые процессы, такие как мониторинг клавиатуры и браузера или записей автозагрузки. Уникальная оценка рисков безопасности указывает на вероятность процесса быть потенциально опасным — шпионской программой, вирусом или трояном. Malwarebytes Anti-Malware определяет и удаляет бездействующие программы-шпионы, рекламное ПО, трояны, кейлоггеры, вредоносные программы и трекеры с вашего жесткого диска.
AppService сканер
Security Task Manager показывает все запущенные сервисы Windows, включая внедренные скрытые приложения (например, мониторинг клавиатуры или браузера, авто вход). Уникальный рейтинг надежности указывает на вероятность того, что процесс потенциально может быть вредоносной программой-шпионом, кейлоггером или трояном.
Бесплатный aнтивирус находит и удаляет неактивные программы-шпионы, рекламу, трояны, кейлоггеры, вредоносные и следящие программы с вашего жесткого диска. Идеальное дополнение к Security Task Manager.
Инструмент ремонта ПК бесплатное сканирование, очистка, восстановление и оптимизация вашей системы.
Microsoft Azure App Service — единый центр разработки мобильных и веб-приложений
Azure App Service совмещает кросс-платформенные средства разработки, что упростит разработчикам создание приложений независимо от того, на какой платформе или устройстве они работают
Microsoft анонсировала новый набор инструментов в виде облачного сервиса для разработки мобильных и веб-приложений, который дополнен средствами для автоматизации бизнес-процессов, а также новый сервис для создания и использования интерфейсов прикладного программирования (API). Как говорится в блоге Microsoft, это решение «объединит Microsoft Azure Websites, Mobile Services и Biztalk Services в единую службу для хостинга приложений с динамически расширяемой средой, позволяющей упростить интеграцию с популярными потребительскими и коммерческими сервисами за доступною цену».
Azure App Service будет включать следующие компоненты:
• Web Apps — ранее известный как Azure Websites, обеспечивает широкий набор возможностей, включая поддержку фреймворков .NET, Java, PHP, Python и др.; полную поддержку DevOps и её непрерывное взаимодействие с Visual Studio Online, GitHub, Bitbucket и др. Web Apps предложит предприятиям возможность подключения к существующим приложениям и сервисам в режиме онпремис и интеграцию с Active Directory, гарантируя обратную совместимость и сохранность данных;
• Mobile Apps — набор инструментов и нативных средств поддержки для мобильных платформ Windows, iOS и Android в виде мультиплатформенных рабочих окружений наподобие Xamarin или Cordova. Сервис упрощает разработчикам взаимодействие с пользователями при помощи мгновенных сообщений, предоставляет средства аутентификации у провайдеров, включая Active Directory, а также облачное хранилище данных с возможностью офлайновой синхронизации;
• Logic Apps — средство автоматизации, предназначенное для обработки и управления потоками данных, поступающих из коммерческих и пользовательских сервисов по API в режиме онпремис. Logic Apps также включают расширенный набор инструментов Azure BizTalk для интеграции локальных бизнес-приложений с сервисами типа SQL Server или PeopleSoft.
• API Apps — этот сервис предлагает разработчикам инструменты для поиска, поддержки и управления API. Он включает штатные средства для работы с бизнес-системами SAP, Siebel или Oracle, а также сервисами Salesforce, Zendesk, Dynamics CRM Online, Office 365 и другими. Обладает библиотекой API, но позволяет также создавать собственные.
Идея создания Azure App Service состоит в том, чтобы предложить разработчикам единую среду для создания корпоративных или потребительских приложений. Для этого предоставляется комплексный кросс-платформенный интерфейс и средства управления внешними API.
Развертывание .NET Core проекта в Azure Web App для Linux
Web Apps на базе Linux позволяет разработчикам запускать веб-приложения в Docker контейнерах для Linux. Это облегчает перенос существующих приложений, размещенных и оптимизированных для платформы Linux в Azure App Service. Кроме того, разработчики могут разворачивать приложения на различных языках программирования и платформах используя при этом уже знакомый инструментарий Docker и Azure App Service.
Что нового в Azure Web App для Linux?
Azure Web App для Linux дает много возможностей для разработчиков, независимо от того, разрабатывают ли они приложения для Linux или просто хотят, чтобы их приложения могли быть контейниризированы. Azure Web App для Linux доступны в регионах Западной Австралии, Западной Европы и Юго-Восточной Азии.
Некоторые из новых возможностей, которые были добавлены в App Service с поддержкой Linux:
- Слоты
- Автоматическое масштабирование
- Поддержка SSH
- Автоматическая публикация образов из Docker Hub
Слоты
Слоты для развертывания были одной из самых популярных функций Azure App Service. Реализация App Service для Linux не было бы полным без поддержки слотов! Вы можете дублировать существующее приложение в «слот» и легко выполнять операции переключения между тестовыми слотами и слотам с рабочей версией веб-приложений.
Автоматическое масштабирование
Вы можете легко масштабировать приложения App Service Linux и Container по требованию или автоматически.Auto Scale поддерживает триггеры CPU, Disk Queue Length и Memory.
Поддержка SSH
Вы можете использовать SSH для управления в своим приложении. Введите в браузере адрес, чтобы узнать параметры подключения SSH:
https://.scm.azurewebsites.net/webssh/host.Если вы еще не прошли проверку подлинности, вам необходимо будет авторизоваться. После этого вы увидите примерно следующее:

ПРИМЕЧАНИЕ. Для активации SSH для пользовательских контейнеров Docker вам необходимо дополнительно сконфигурировать SSH-сервер.
Автоматическая публикация образов из Docker Hub
Ваше веб-приложение будет автоматически развернуто, когда новая версия будет опубликована в Docker Hub.
Чтобы активировать эту возможность:
-
Настройте хук на Docker Hub
https://:@.scm.azurewebsites.net/docker/hook
- Создайте переменную для веб-приложения с названием DOCKER_ENABLE_CI и установите ее значение TRUE.
- Поддержка wildcard доменов. Теперь вы можете назначить wildcard имена для своих веб-приложений. Например, * .constoco.com.
- Тестирование в производстве (TiP): эта функция позволяет направить x% трафика на слот или бета-сайт вашего приложения.
- Always On: с помощью этой функции вы можете обеспечить постоянную работу своего веб-приложении и избежать «холодного запуска» из-за тайм-аутов простоя.
- Site Restart: вы можете перезагрузить контейнер и веб-приложение, используя эту опцию. Эта опция заставит перезагружать контейнер из закэшированного образа.
Другие функции
Создание и развертывание .NET Core проекта
Запустите терминал, создайте директорию с именем hellodotnetcore и перейдите в нее. Затем введите:
dotnet new web
Эта команда создает три файла (hellodotnetcore.csproj, Program.cs и Startup.cs) и одну пустую директорию(wwwroot /) в текущем каталоге. Содержимое файла .csproj должно выглядеть следующим образом:
netcoreapp1.1
Поскольку это веб-приложение, ссылка на пакет ASP.NET Core автоматически добавится в файл hellodotnetcore.csproj. Номер версии пакета устанавливается в соответствии с установленным SDK. Этот пример относится к ASP.NET Core версии 1.1.2, так как используется .NET Core 1.1.
Собрать и запустить приложение .NET Core можно с помощью двух команд:
dotnet restore dotnet run
Когда приложение запустится, вы увидите сообщение о том, что прослушиваются входящие запросы:
Hosting environment: Production Content root path: C:\hellodotnetcore Now listening on: http://localhost:5000 Application started. Press Ctrl+C to shut down.
Проверьте что приложение работает корректно, открыв в браузере localhost:5000/
Если все будет хорошо, вы увидите сообщение «Hello World!».
Публикация .NET Core приложения в Azure
Первое, что вам необходимо сделать, это создать новое веб-приложение. Войдите в портал Azure и создайте WebApp для Linux.

Далее укажите параметры для создания нового приложения:

| Параметр | Значение | Описание |
|---|---|---|
| App name | hellodotnetcore | The name of your app. This name must be unique. |
| Subscription | Choose an existing subscription | The Azure subscription. |
| Resource Group | myResourceGroup | The Azure resource group to contain the web app. |
| App Service Plan | Existing App Service Plan name | The App Service plan. |
| Configure Container | .NET Core 1.1 | The type of container for this web app: Built-in, Docker, or Private registry. |
| Image source | Built-in | The source of the image. |
| Runtime Stack | .NET Core 1.1 | The runtime stack and version. |
Далее, после того, как создание приложения будет завершено, найдите URL-адрес репозитория git, перейдя по адресу:
https://.scm.azurewebsites.net/api/scm/info
Выполните команды для развертывания приложения в Azure:
git init git remote add azure git add *.csproj *.cs git commit -m "Initial deployment commit" git push azure master
Вам не нужно отдельно добавлять в репозиторий файлы в директории bin/ или obj/, потому что веб-приложение будет автоматически собрано в облаке.
Результат должен выглядеть примерно так:
/* some output has been removed for brevity */ remote: Copying file: 'System.Net.Websockets.dll' remote: Copying file: 'System.Runtime.CompilerServices.Unsafe.dll' remote: Copying file: 'System.Runtime.Serialization.Primitives.dll' remote: Copying file: 'System.Text.Encodings.Web.dll' remote: Copying file: 'hellodotnetcore.deps.json' remote: Copying file: 'hellodotnetcore.dll' remote: Omitting next output lines. remote: Finished successfully. remote: Running post deployment commands. remote: Deployment successful. To https://hellodotnetcore.scm.azurewebsites.net/ * [new branch] master -> master
После завершения развертывания перезапустите веб-приложение. Для этого перейдите на портал Azure, откройте страницу «Overview» вашего веб-приложения и нажмите кнопку «Restart».
После перезапуска откройте страницу с веб-приложением. Она должна выглядеть примерно так:

Источники
- See what’s new for Azure App Service-Web App on Linux (Preview)
- Use .NET Core in an Azure web app on Linux
- Пример создания приложения на .NET Core