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

更新時間: 2020 年 9 月 25 日

2K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告