Использование Kestrel без IIS и VS 2017 - PullRequest
0 голосов
/ 15 мая 2018

Зависит от документации Microsoft:

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/?view=aspnetcore-2.0&tabs=aspnetcore2x

Kestrel может использоваться сам по себе или с обратным прокси-сервером, таким как IIS, Nginx или Apache. Обратный прокси-сервер получает HTTP-запросы из Интернета и после некоторой предварительной обработки перенаправляет их в Kestrel.

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

Но когда я запускаю Visual Studio 2017, всегда запускается IIS Express. Так как же зависеть от одной пустельги, если это возможно, зависит от документации MS.

1 Ответ

0 голосов
/ 15 мая 2018

Вы можете изменить приложение запуска с панели инструментов в VS2017

enter image description here

В приведенном выше примере Visual Studio будет размещать мое приложение в IIS Express (пункт с галочкой).Если вы хотите запустить его как приложение, размещенное на Kestrel, я бы выбрал WebApplication2 из выпадающего списка.Теперь, когда я запускаю приложение, оно запускается из окна командной строки.

Если вы используете .NET Core 2.0, тогда ваш Program.cs файл должен выглядеть примерно так:

public class Program
{
    public static void Main(string[] args)
    {
        BuildWebHost(args).Run();
    }

    public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .Build();
    }
}

За кулисами (в методе Build()) ASP.NET Core добавит вызовы, чтобы убедиться, что ваше приложение будет работать в IIS и Kestrel без необходимости что-либо менять.

...