ASP.NET Core 5 主机到底是什么?

Bha*_*vna 5 asp.net-core

构建后,在 bin 文件夹内,有 2 个主要文件 {AppName}.exe{AppName}.dll,我理解的是AppName.dll实际编译的应用程序代码,并且AppName.exe是 Kestrel 内托管应用程序的主机。

我的问题:这是.exe由于Program.cs,并且它是充当我们的应用程序在其下运行的工作进程的进程,因为我们将进程名称作为 ASP.NET Core 5 的应用程序名称,而不是 dotnet ( dotnet.exe) 。

Fei*_*SFT 0

AppName.exe不是主持人。如果项目类型是面向 .NET Core 3.0 或更高版本的可执行文件,则 exe 是可用于运行应用程序的可执行文件。更多详细信息可以参考dotnet build命令。

ASP.NET Core 项目模板默认使用 Kestrel。在Program.cs中,ConfigureWebHostDefaults 方法调用 UseKestrel:

public static void Main(string[] args)
{
    CreateHostBuilder(args).Build().Run();
}

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        //use Kestrel 
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>();
        });
Run Code Online (Sandbox Code Playgroud)

以下是有关主机主题的一些有用链接:

ASP.NET Core 中的 Kestrel Web 服务器实现

使用 IIS 和 ASP.NET Core 进行进程内托管

使用 IIS 和 ASP.NET Core 进行进程外托管