Tất cả các ứng dụng ASP.NET Core yêu cầu một đối tượng WebHost về cơ bản phục vụ ứng dụng và máy chủ web. WebHostBuilder được sử dụng để cấu hình và tạo WebHost. Thông thường, bạn sẽ thấy UseKestrel () và UseIISIntegration () trong mã thiết lậpWebHostBuilder.
Những thứ này làm gì?
UseKestrel () - Điều này đăng ký giao diện IServer cho Kestrel làm máy chủ sẽ được sử dụng để lưu trữ ứng dụng của bạn.
Trong tương lai, có thể có các tùy chọn khác, bao gồm WebListener sẽ chỉ dành cho Windows.
UseIISIntegration () - Điều này cho ASP.NET biết rằng IIS sẽ hoạt động như một proxy ngược trước Kestrel.
Sau đó, điều này chỉ định một số cài đặt xung quanh cổng mà Kestrel nên niêm yết, tiêu đề chuyển tiếp và các chi tiết khác.
Ví dụ
public class Program{ public static void Main(string[] args){ var host = new WebHostBuilder() .UseKestrel() .UseContentRoot(Directory.GetCurrentDirectory()) .UseIISIntegration() .UseStartup() .Build(); host.Run(); } }
Cho đến khi ASP.NET Core 2.2, ASP.NET Core được lưu trữ ngoài quy trình trong IIS, chúng tôi đã có hai quy trình cho một ứng dụng -
w3wp.exe, quy trình IIS
dotnet.exe, quy trình ASP.NET Core, nơi máy chủ web Kestrel được khởi động. Điều này có nghĩa là IIS và Kestrel đã giao tiếp giữa hai quy trình đó.
Đối với trường hợp này, chúng tôi sử dụng UseIISIntegration.