在 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。
广告