簡體   English   中英

在IIS中托管時,我的MVC Core應用程序的Program類應該是什么樣?

[英]What should my MVC Core app's Program class look like for hosting in IIS?

目前, Program類是MVC Application項目模板創建的默認類,如下所示:

public class Program
{
    public static void Main(string[] args)
    {
        BuildWebHost(args).Run();
    }

    public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .Build();
}

我知道我也應該在那里有一個UseIISIntegration調用,並且應該以某種方式參與Kestrel ,但是我僅此而已。

有人可以給我一個例子,說明我的MVC應用程序已正確配置為在IIS上托管時, Program類的內容應按什么順序排列。 Windows上帶有IIS的Windows上的MS Docs Host ASP.NET Core主題僅具有以下不足的示例:

public static IWebHost BuildWebHost(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
        ...

習慣於在Asp.Net Core 1.x中啟用IISIntegration組件時

var host = new WebHostBuilder()
    .UseKestrel()
    .UseIISIntegration()
    ...

因為同時需要UseKestrelUseIISIntegration

在最新版本的Asp.Net Core 2.x中,已將其合並到WebHost.CreateDefaultBuilder方法中

以下默認值應用於返回的WebHostBuilder:使用Kestrel作為Web服務器,將ContentRootPath設置為GetCurrentDirectory()的結果,從“ appsettings.json”和“ appsettings。[EnvironmentName] .json”加載IConfiguration,從使用入口程序集將EnvironmentName設為“開發”,從環境變量加載IConfiguration,將ILoggerFactory配置為登錄到控制台並調試輸出,啟用IIS集成,使框架能夠將其選項綁定到其默認配置部分的功能時,用戶的秘密並在EnvironmentName為'Development'時添加開發人員例外頁面

再次引用文檔

典型的Program.cs調用CreateDefaultBuilder來開始設置主機。 CreateDefaultBuilderKestrel配置為Web服務器,並通過配置ASP.NET Core模塊的基本路徑和端口來啟用IIS集成。

public static IWebHost BuildWebHost(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
    ...

    In Asp.Net Core 1.x as you are accustom to when enabling the IISIntegration components you would have done

var host = new WebHostBuilder()
    .UseKestrel()
    .UseIISIntegration()
    ...

ASP.NET Core 2.x仍然支持使用WebHostBuilder

Windows上具有IIS的參考主機ASP.NET Core

有關在Asp.Net Core中托管的更多信息

ASP.NET Core中的參考托管

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM