C#Asp.net Core中UseIISIntegration的用途是什么?
所有ASP.NETCore应用程序都需要一个WebHost对象,该对象实际上充当应用程序和Web服务器。WebHostBuilder用于配置和创建WebHost。通常UseKestrel()
,您将UseIISIntegration()
在WebHostBuilder安装代码中看到和。
这些是做什么的?
UseKestrel()-这会将Kestrel的IServer接口注册为将用于承载应用程序的服务器。
将来可能会有其他选择,包括仅Windows的WebListener。
UseIISIntegration()-这告诉ASP.NETIIS将在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.NETCore2.2之前,ASP.NETCore都是在IIS中进行进程外托管的,一个应用程序只有两个进程-
w3wp.exe,IIS进程
dotnet.exe,这是启动KestrelWeb服务器的ASP.NETCore进程。这意味着IIS和Kestrel在这两个进程之间进行通信。
对于这种情况,我们使用UseIISIntegration。