모든 ASP.NET Core 응용 프로그램에는 기본적으로 응용 프로그램 및 웹 서버 역할을 하는 WebHost 개체가 필요합니다. WebHostBuilder는 WebHost를 구성하고 생성하는 데 사용됩니다. 일반적으로 WebHostBuilder 설정 코드에서 UseKestrel() 및 UseIISIntegration()을 볼 수 있습니다.
무엇을 합니까?
Kestrel() 사용 − 이렇게 하면 Kestrel의 IServer 인터페이스가 애플리케이션을 호스팅하는 데 사용할 서버로 등록됩니다.
미래에는 Windows 전용인 WebListener를 포함하여 다른 옵션이 있을 수 있습니다.
IISI통합() 사용 − 이것은 IIS가 Kestrel 앞에서 역방향 프록시로 작동할 것임을 ASP.NET에 알려줍니다.
그런 다음 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에서 out-of-process로 호스팅되었으며 응용 프로그램에 대해 두 가지 프로세스가 있었습니다. -
w3wp.exe, IIS 프로세스
dotnet.exe, Kestrel 웹 서버가 시작된 ASP.NET Core 프로세스. 이는 IIS와 Kestrel이 두 프로세스 간에 통신하고 있음을 의미합니다.
이 시나리오에서는 UseIISIintegration을 사용합니다.