在没有IIS和VS 2017的情况下使用Kestrel

Han*_*bib 2 .net asp.net .net-core asp.net-core

取决于Microsoft文档:

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

Kestrel可以单独使用,也可以与反向代理服务器(例如IIS,Nginx或Apache)一起使用。反向代理服务器从Internet接收HTTP请求,并在进行一些初步处理后将其转发给Kestrel。

没有Kestrel或自定义服务器实现,就无法使用IIS,Nginx和Apache。ASP.NET Core旨在在其自己的进程中运行,以便它可以跨平台一致地运行。

但是当我运行Visual Studio 2017时,总是运行IIS Express。因此,如果可能的话,如何单独依靠茶est取决于MS文档。

Sim*_*Ged 5

您可以从VS2017中的工具栏更改启动应用程序

在此处输入图片说明

在上面的示例中,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();
    }
}
Run Code Online (Sandbox Code Playgroud)

在该Build()方法的幕后(在方法中),ASP.NET Core将添加调用以确保您的应用程序将在IIS和Kestrel中运行,而无需进行任何更改。