C#Asp.net Core中UseIISIntegration的用途是什么?

所有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。