ПредишенСледващото

В тази статия,

ASP.NET ядро ​​- това е нова междуплатформена среда с отворен код за създаване на модерна облачни приложения при свързване с интернет, като например уеб-базирани приложения за интернет на нещата приложения и от страна на сървъра мобилни приложения.

Начално ръководство за ASP.NET същинската услуга Fabric и инструкции за конфигуриране, вижте развитие на околната среда. Вижте Създаване на външен интерфейс уеб услуга за прилагане, използвайки ASP.NET ядро.

ASP.NET същинската услуга Fabric в околната среда

Въпреки ASP.NET Основни приложения могат да се движат по .NET ядрото или пълната версия на рамката за .NET, Сервиз Fabric може в момента работи само на пълната версия на .NET Framework. Това означава, че при създаването на услуга ASP.NET същинската услуга Fabric все още трябва да се съсредоточи върху пълната версия на Рамката на .NET.

ASP.NET ядро ​​може да се използва по два различни начина в услуга Материя:

  • Добави като гост на изпълнимия файл. Това се използва главно да тече съществуващи приложения на ASP.NET същинската услуга Fabric, без да променяте кода.
  • Извършване на вътрешната страна на надеждни услуги. Това осигурява по-добра интеграция с време на изпълнение на услуги Fabric и ви позволява да използвате ASP.NET Ядро динамична защитна.

Останалата част от тази статия обяснява как да се използва ASP.NET ядрото вътре надеждна услуга с компоненти за интеграция на ASP.NET, които доставят с SDK за услуга Fabric.

Поставянето Сервиз Fabric

Услугата Fabric едно или повече копия и (или) услуги, които работят във услугата реплика процес домакин - изпълним файл, който изпълнява кода на услугата. Създател услуга принадлежи на услугата процес хост, който Service Fabric активира и монитори.

Обикновено ASP.NET (MVC до 5) е тясно свързана с IIS чрез System.Web.dll. ASP.NET Ядро споделен уеб сървър и уеб приложение. Това ви дава възможност да мигрират уеб приложение между различни уеб сървъри, а също така позволява на уеб сървъри, за да бъде независимо намира. Това означава, че можете да стартирате уеб сървър в собствения си процес, за разлика от процеса, който принадлежи към специален уеб сървърен софтуер, като например IIS.

За комбиниране на услуги Service Fabric и ASP.NET в надеждна услуга, или като гост на изпълнимия заявлението, трябва да стартирате процеса ASP.NET от услугата домакин. ASP.NET Ядро самостоятелни помещения за настаняване го позволява.

ASP.NET Ядро настаняване в надеждна услуга

Обикновено автономно поставя ASP.NET приложение ядро ​​създаване на хоста на влизане приложение точка на статичен метод например невалидни основни () в Program.cs. В този случай на хоста на жизнения цикъл, свързан с процеса на жизнения цикъл.

молба за влизане точка не е подходящо да се създаде празна страница в надеждна услуга, тъй като тя се използва само за услуги, като регистрация в надеждна услуга навечерието на околната среда, за да може да се създаде случаи на този вид услуга. На хоста, за да се установи надеждна услуга автоматично. обслужване инстанция процес домакин на услугата и (или) копия може да отнеме няколко цикъла на живот.

Надеждна услуга съд представени чрез класа на обслужване, което се извлича от или StatelessService StatefulService. комуникация стека за услуга се съдържа в класа на реализация ICommunicationListener услуга. Пакети NuGet Microsoft.ServiceFabric.Services.AspNetCore. * Съдържа ICommunicationListener изпълнение. които управляват и администрират ASP.NET Ядро на хоста за ветрушка или WebListener в надеждна услуга.

Взаимодействието с услугите, чрез основни, Microsoft докторите на

ICommunicationListener обекти в ASP.NET ядро

Реализация ICommunicationListener ветрушка и WebListener в пакети NuGet Microsoft.ServiceFabric.Services.AspNetCore. * Има подобни схеми за използване, но изпълнява няколко различни функции за всеки уеб сървър.

И двете слушател комуникация осигури конструктор, който се следните аргументи:

Middleware за интегриране на услуги Fabric

Причината за погрешно идентифициране

Това може периодично да доведе до грешки, които са трудни за диагностициране.

За да избегнете това, услугата може да постави крайната точка в името на услугата, уникален идентификационен номер, а след това да го проверите по време на обработката на клиентски заявки. Настоящото съвместно действие между услугите в доверен екологичен клиент. То не предоставя сигурна проверка за удостоверяване на услуги във враждебна клиент среда.

Услуги, които използват динамично възложени порт, трябва да използват този мидълуер.

Услуги с помощта на постоянна уникален пристанището, не разполагат с този проблем в съвместна среда. Постоянен уникален порт-често се използва за външни услуги, които изискват добре познат порт за свързване на клиентски приложения. Например, повечето уеб приложения с достъп до интернет чрез порт 80 или 443 за уеб браузър връзки. В този случай, не включват уникален идентификатор.

Диаграмата по-долу показва заявка поток активиран мидълуер.

Взаимодействието с услугите, чрез основни, Microsoft докторите на

WebListener в надеждни услуги Услуги

WebListener да използвате надеждна услуга, внос пакет NuGet Microsoft.ServiceFabric.AspNetCore.WebListener. Този пакет съдържа WebListenerCommunicationListener. ICommunicationListener изпълнение. която ви позволява да създадете празна страница ASP.NET ядро ​​вътре надеждна услуга чрез WebListener като уеб сървър.

Диаграмата по-долу показва как да използвате WebListener HTTP.SYS шофьор ядрото на Windows за споделяне на портове:

Взаимодействието с услугите, чрез основни, Microsoft докторите на

WebListener в експлоатация без проследяване на статуса

WebListener за използване за мониторинг на състоянието на услугата, без да имат приоритет метод CreateServiceInstanceListeners и да се върнете WebListenerCommunicationListener например:

WebListener в експлоатация динамична защитна

Задаване на крайна точка

Също така е необходимо да се премине на името на крайна точка в WebListenerCommunicationListener дизайнер.

Използването WebListener със статичен порт

За да използвате статичен порт WebListener, посочете номера на порта в конфигурацията Endpoint.

Използването WebListener динамичен порт

За да използвате динамично възложени порт WebListener, по-ниска имот в Порт Endpoint конфигурация.

Ветрушка в надеждни услуги

Ветрушка могат да бъдат използвани в надеждна услуга, внос пакет NuGet Microsoft.ServiceFabric.AspNetCore.Kestrel. Този пакет съдържа KestrelCommunicationListener. ICommunicationListener изпълнение. която ви позволява да създадете празна страница ASP.NET ядро ​​вътре надеждна услуга, използвайки ветрушка като уеб сървър.

Ветрушка - това е кръст-платформа за уеб сървър за ASP.NET Ядро на базата libuv, междуплатформена библиотека на асинхронни IO. За разлика от WebListener, ветрушка не използва централизирани контролери крайни точки като HTTP.SYS. и не поддържа споделяне на пристанището между множество процеси. Ветрушка всеки отделен случай трябва да използва уникален порт.

Взаимодействието с услугите, чрез основни, Microsoft докторите на

Ветрушка в експлоатация без проследяване на статуса

За да използвате ветрушка в служба без проследяване на държавните CreateServiceInstanceListeners предефинират метода и да се върнат KestrelCommunicationListener например:

Ветрушка в експлоатация динамична защитна

За да използвате ветрушка в услуга Stateful метод замяна CreateServiceReplicaListeners на и да се върнете KestrelCommunicationListener например:

В този пример, сек например IReliableStateManager условие хоста зависимост инжектиране контейнер. Това не е задължително, но може да се използва IReliableStateManager и надеждно събиране на методи контролер за действие MVC.

Имайте предвид, че името на конфигурация Endpoint не е налична в услуга KestrelCommunicationListener Stateful на. Това е обяснено по-подробно в следващия раздел.

Задаване на крайна точка

За да използвате конфигурация ветрушка Endpoint се изисква.

Използване на статичен порт и ветрушка

Можете да конфигурирате статичен пристанище конфигурация Endpoint ServiceManifest.xml файл за използване с ветрушка. Въпреки че не е задължително, той дава две потенциални ползи:

Ако Endpoint настроен, името й трябва да се предаде на строителя KestrelCommunicationListener.

Ако не се използва Endpoint конфигурация, не се посочва името на крайна точка в конструктора KestrelCommunicationListener. В този случай, ще се използва динамичен порт. Този процес е описан в следващия раздел.

С помощта на динамичен порт и ветрушка

Ветрушка Не можете да използвате автоматичен задача пристанище на Endpoint конфигурационен файл ServiceManifest.xml като автоматично задаване на порт Endpoint конфигурация дава уникален порт за всеки процес домакин. В резултат на това процес множество може да съдържа множество копия ветрушка. От ветрушка не поддържа споделянето на пристанища, че няма да работи, тъй като всеки отделен случай ветрушка трябва да се отваря по един уникален порт.

За да използвате и на динамично присвояване пристанище в ветрушка, напълно достатъчно, за да се намали Endpoint конфигурация в ServiceManifest.xml файл или прехвърляне на името на крайна точка в KestrelCommunicationListener дизайнер.

В тази конфигурация KestrelCommunicationListener автоматично избиране на неизползвани пристанище между пристанищните приложения.

Скриптове и конфигурация

  • външно-достъпната ASP.NET същинската услуга без проследяване на статуса
  • ASP.NET същинската услуга без проследяване състояние само за вътрешно ползване
  • ASP.NET същинската услуга динамична защитна само за вътрешно ползване

Достъпни отвън услугата предоставя на разположение извън клъстера крайната точка, обикновено чрез стабилизатор натоварване.

Service само за вътрешно ползване - е крайна точка услуга, която е достъпна само в рамките на клъстера.

Endpoints услуга динамична защитна не трябва да бъде на разположение в интернет. Клъстерите, които стоят зад стабилизатор товар, който не поддържа резолюция услуги Fabric служби (например Azure Load Balancer), няма да бъдат в състояние да предоставят услуги с динамична защитна защото балансьор на товара не ще бъде в състояние да открива и директен трафик към съответната динамична защитна реплика услуга.

Външно достъпен ASP.NET същинската услуга без проследяване на статуса

В момента ветрушка не се поддържа като сървър ръб (с достъп до интернет). За да се справят с трафика от публичния интернет трябва да се използва обратната прокси сървър, като например IIS или Nginx.

Подкрепете проекта - споделете линка, благодаря!