所有ASP.NET Core应用程序都需要一个WebHost对象,该对象实际上充当应用程序和Web服务器。WebHostBuilder用于配置和创建WebHost。通常UseKestrel()
,您将UseIISIntegration()
在WebHostBuilder安装代码中看到和。
UseKestrel() -这会将Kestrel的IServer接口注册为将用于承载应用程序的服务器。
将来可能会有其他选择,包括仅Windows的WebListener。
UseIISIntegration() -这告诉ASP.NET IIS将在Kestrel之前充当反向代理。
然后,这将指定一些设置,以便围绕Kestrel监听的端口,转发报头以及其他详细信息。
public class Program{ public static void Main(string[] args){ var host = new WebHostBuilder() .UseKestrel() .UseContentRoot(Directory.GetCurrentDirectory()) .UseIISIntegration() .UseStartup() .Build(); host.Run(); } }
在ASP.NET Core 2.2之前,ASP.NET Core都是在IIS中进行进程外托管的,一个应用程序只有两个进程-
w3wp.exe, IIS进程
dotnet.exe,这是启动Kestrel Web服务器的ASP.NET Core进程。这意味着IIS和Kestrel在这两个进程之间进行通信。
对于这种情况,我们使用UseIISIntegration。