2016-07-11 4 views
4

В настоящее время я читаю документацию о ядре asp.net. Но этот page about servers меня немного смутил. Насколько я понимаю, приложения ASP.NET Core - это просто консольные приложения, которые запускают HTTP-сервер. HTTP-сервер, такой как IIS, может использоваться как обратный прокси-сервер.Зачем запускать IIS Express локально?

Я предполагаю, что это по соображениям производительности. Зачем мне запускать IIS Express во время разработки? Это не то, что мне нужна реальная работа? Это связано с тем, что IIS обладает большей функциональностью? Какие функции работают лучше в IIS?

+2

Ну, одна из причин заключается в том, что варианты WebListener/Kestrel не поддерживают SSL, по крайней мере, нелегко и безопасно (вам понадобится пароль секретного ключа в конфигурационном, исходном или секретном хранилище), тогда как IIS использует уже импортированные сертификаты из хранилища сертификатов, и одним из наиболее распространенных сценариев является запуск приложения позади iis als обратного прокси, которое приближается к тому, что делает IIS (с использованием основного модуля ASP.NET для IIS) и перенаправляет трафик на пустельгу сервер за – Tseng

ответ

0

Какой сервер, который вы запускаете в процессе разработки, зависит от того, на каком сервере вы планируете развертывание на производстве.

Если вы будете развертывать ваше приложение ASP.NET Core в Linux или планируете использовать Kestrel с обратным прокси-сервером, например nginx, вы должны протестировать его с помощью Kestrel локально в процессе разработки.

Если вы будете развертываться на Windows Machine и IIS, вам следует протестировать локальную разработку IIS Express в процессе разработки.

Для простых приложений, я обнаружил, что в функциях ASP.NET Core нет большой разницы при запуске локально на Kestrel или IIS Express. Я больше всего заинтересован в тестировании, чтобы убедиться, что он работает с сервером, на котором я планирую развернуть.

+1

Даже при работе с IIS Express вы запускаете Kestrel, потому что есть только два поддерживаемых способа размещения приложений ASP.NET Core: WebListener или Kestrel (Helios был оставлен). WebListener работает только в Windows, поэтому естественным выбором является запуск Kestrel – Tseng

+0

@Tseng Ah, TIL. Спасибо за разъяснения. –

+1

[Это] (https://github.com/aspnet/KestrelHttpServer/issues/957) стоит прочитать – Pawel

1

Зачем мне запускать IIS в локальном режиме во время разработки?

Чистое удобство. IIS Express поставляется с Visual Studio. F5 или^F5 и IIS Express.

+0

Следует также упомянуть, что IIS Express существует уже много лет и на самом деле не нужно удивлять пользователей другой вещью без веских причин. –

+0

Я подумал, почему добавить дополнительную «сложность» одновременного запуска 2-х HTTP-серверов. Как опытный разработчик, он чувствует себя удобно, но, как новый разработчик, он предполагает узнать что-то о iis .. –