Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

UseIISIntegration ใน C # Asp.net Core มีประโยชน์อย่างไร


แอปพลิเคชัน ASP.NET Core ทั้งหมดต้องการวัตถุ WebHost ที่ทำหน้าที่เป็นแอปพลิเคชันและเว็บเซิร์ฟเวอร์เป็นหลัก WebHostBuilder ใช้ในการกำหนดค่าและสร้าง WebHost โดยปกติคุณจะเห็น UseKestrel() และ UseIISIntegration() ในรหัสการตั้งค่า WebHostBuilder

สิ่งเหล่านี้ทำอะไรได้บ้าง

UseKestrel() − สิ่งนี้จะลงทะเบียนอินเทอร์เฟซ IServer สำหรับ Kestrel เป็นเซิร์ฟเวอร์ที่จะใช้โฮสต์แอปพลิเคชันของคุณ

ในอนาคตอาจมีตัวเลือกอื่น ๆ รวมถึง WebListener ซึ่งจะเป็น Windows เท่านั้น

UseIISIntegration() − สิ่งนี้บอก ASP.NET ว่า IIS จะทำงานเป็น reverse proxy ต่อหน้า 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 เริ่มทำงาน ซึ่งหมายความว่า IIS และ Kestrel กำลังสื่อสารระหว่างสองกระบวนการนี้

สำหรับสถานการณ์นี้ เราใช้ UseIISIntegration