ASP.NET Core 5主机是什么?

3
构建完成后,在bin文件夹内有两个主要文件{AppName}.exe{AppName}.dll,我理解的是AppName.dll是实际编译的应用程序代码,而AppName.exe是托管应用程序在Kestrel中运行的宿主程序。

我的问题是:这个.exe是否由Program.cs生成,并且它是否作为工作进程来运行我们的应用程序,因为对于ASP.NET Core 5,我们得到的进程名是应用程序名称,而不再是dotnet (dotnet.exe)。

1个回答

1

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>();
        });

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

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

IIS和ASP.NET Core的进程内托管

IIS和ASP.NET Core的进程外托管


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接