在 C# Asp.net Core 中,UseIISIntegration 的作用是什么?


所有 ASP.NET Core 应用程序都需要一个 WebHost 对象,该对象本质上充当应用程序和 Web 服务器。WebHostBuilder 用于配置和创建 WebHost。通常,您会在 WebHostBuilder 设置代码中看到 UseKestrel() 和 UseIISIntegration()。

这些方法的作用是什么?

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, ASP.NET Core 进程,其中启动了 Kestrel Web 服务器。这意味着 IIS 和 Kestrel 在这两个进程之间进行通信。

对于这种情况,我们使用 UseIISIntegration。

更新时间: 2020 年 9 月 25 日

2K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告