Варианты развертывания ASP.NET Core

Мы только начали использовать ASP.NET Core в своей разработке. Есть несколько открытых вопросов, по которым я не нашел полезных ресурсов. Каковы были бы лучшие практики или различия между перечисленными ниже, и все ли они действительны?

ASP.NET Core + .NET 4.6

1) В IIS

2) Автономно на OWIN

3) OWIN + IIS

ASP.NET Core + .NET Core:

1) В IIS (опубликовано)

2) Автономная Kestrel (среда разработки и тестирования)

3) Автономный обратный прокси-сервер Kestrel + IIS (контроль качества и продакшн.

Спасибо!

РЕДАКТИРОВАТЬ: мои варианты заголовка и вопроса были недействительными, поэтому я изменил их, чтобы отразить мое текущее понимание.


person user1340582    schedule 10.08.2016    source источник
comment
Я не уверен, есть ли у Asp.Net Core OWIN вообще.   -  person Afshar Mohebi    schedule 10.08.2016
comment
Это так, что Asp.Net Core может работать на IIS или как автономный на Kestrel, или затем запускать Asp.Net Core на .Net 4.6 на IIS или как автономный на OWIN?   -  person user1340582    schedule 10.08.2016
comment
@afsharm См. github.com/ymoradi/OwinAspNetCore Это пример приложения с использованием owin, asp.net web api odata, signalr и т. д. на конвейере ASP.NET Core с полной инфраструктурой .net, и это пример использования nancy на ядре asp.net и ядре .net с использованием конвейера owin. hanselman.com/blog/ ASP.NET Core не зависит от конвейера и сервера.   -  person Yaser Moradi    schedule 01.10.2016
comment
@LexLi Ваш комментарий явно неверен, ASP.NET Core не зависит от конвейера и сервера, вы можете использовать конвейер Owin и серверы owin в ядре asp.net, как в ядре .net, так и в полной .Net, см. Мой предыдущий комментарий.   -  person Yaser Moradi    schedule 01.10.2016
comment
@YasserMoradi Спасибо за вашу рекомендацию. Наличие odata с ядром asp.net (даже в полной структуре) очень полезно для нас.   -  person Afshar Mohebi    schedule 01.10.2016
comment
@LexLi Owin является стандартным и имеет несколько реализаций. Вы можете использовать основной конвейер asp.net внутри конвейера owin, вы можете использовать конвейер owin внутри основного конвейера asp.net, и вы можете размещать основные приложения asp.net на хостах owin. Я не говорю о катане, это всего лишь реализация. См. owin.org Мое приложение может работать поверх ядра asp.net и helios, а я могу запускать его в службе Windows с прослушивателем хоста owin http, и я могу запускать его в ASP.NET и IIS с помощью катаны. Как вы говорите, что все дело только в промежуточном программном обеспечении?   -  person Yaser Moradi    schedule 01.10.2016


Ответы (3)


Kestrel также работает на полной платформе (.NET 4.5, 4.6). Так что для ядра ASP.NET обратный прокси-сервер Kestrel + - лучший вариант.

person Community    schedule 23.08.2016

Рекомендуется не открывать автономный сервер (пустельга) напрямую, а за (обратным) прокси. Как IIS, apache или nginx. См. docs.asp.net.

person Kalten    schedule 10.08.2016
comment
если IIS используется как обратный прокси-сервер, зачем вообще запускать Kestrel? Почему бы тогда просто не использовать IIS? - person user1340582; 23.08.2016
comment
@ user1340582 Потому что IIS предназначен только для Windows :)? - person ; 24.08.2016
comment
@goaty ну конечно, но то же самое и в Linux. Если вам потребуется JBoss в качестве обратного прокси для Kestrel в Linux, первым делом вы спросите, почему ваше приложение не может работать в самом JBoss :) - person user1340582; 24.08.2016
comment
@ user1340582 Kestrel - это управляемая библиотека, которая анализирует запрос и выдает HttpContext. IIS / nginx ... это веб-сервер, который обрабатывает балансировку нагрузки, фильтрацию, жизненный цикл приложения ... ядро ​​asp.net полностью отделено от веб-сервера :) - person ; 24.08.2016

Это список полных сценариев:

Для автоматического тестирования E2E вы можете использовать Owin Test Server или ASP.NET Core Test Server. Для разработки / контроля качества / производства вы можете использовать IIS / Kestrel, IIS / WebListener (предварительная версия и только для Windows, но имеет преимущества), IIS / Owin (Katana) , IIS / Nowin. Помните, что ASP.NET Core не зависит от сервера и конвейера, вы можете использовать основной конвейер asp.net и использовать конвейер owin внутри него, вы можете использовать конвейер owin и использовать основной конвейер asp.net внутри него. Вы даже можете разрабатывать серверы и конвейеры с нуля (было действительно полезно для меня в одном из моих приложений). Для начала я рекомендую вам использовать ядро ​​asp.net с полной структурой .net вместе с основными конвейерами owin и asp.net. Вы можете использовать функции ASP.NET Core, такие как ASP.NET Core MVC 1, и вы можете использовать ASP.NET Web API OData, Signalr, веб-хуки, сервер идентификации thinktecuture на основе owin бок о бок. И подождите, пока ASP.NET Core / .NET core реализует Signalr, thinktecuture identity server 4 и т. Д. Помните, что .NET Core не является жалобой на .NET Standards 2.0. После этого ваша миграция станет намного проще. Это образец рабочего приложения: https://github.com/ymoradi/OwinAspNetCore

person Yaser Moradi    schedule 01.10.2016