ASP.NET CoreのMain関数

1790 ワード

以前は、伝統的なASP.NEが開発した時はAspを知らない人が多かった.Netのプログラムエントリはどこにありますか.伝説のMain関数が見つからないからです.でもASP.NET Coreでは、Main関数が漏れ、Program.csの中にデフォルトで置かれています.
  public class Program
    {
        public static void Main(string[] args)
        {
            var host = new WebHostBuilder()
                .UseKestrel()
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseIISIntegration()
                .UseStartup()
                .UseApplicationInsights()
                .Build();

            host.Run();
        }
    }
  • .UseKestrel() WebアプリケーションとしてKestrelを使用するHTTPサーバ、実はASP.NET Coreは2つの異なるHTTPサーバーを持っています.
  • Microsoft.AspNetCore.Server.Kestrel(クロスプラットフォーム対応)
  • Microsoft.AspNetCore.Server.WebListener(Windowsのみ)
  • .UseContentRoot(Directory.GetCurrentDirectory())アプリケーションのルートディレクトリを設定します.このディレクトリには、アプリケーション自体の内部に必要なリソースが格納されています(WebRootPathとの違いに注意してください.WebRootPathが指すディレクトリは、HTTPによってアクセスを要求できるリソースを格納するために使用されます.一般的にはwwwrootフォルダです).
  • .UseIISIntegration()は、アプリケーションがIIS内で実行されることをサポートし(実際にはIISを逆エージェントとして使用する)、アプリケーションがIIS内で走らない場合は、この行を削除することができます.
  • .UseStartup()アプリケーションの起動クラスを指定する、StartupはASP.NET Coreアプリケーションの起動中に非常に重要なクラスです.ASP.NET Coreはこのクラスのタイプ制約を強制していませんが、このクラスには次の2つの方法が必要です.
  • ConfigureServices(IServiceCollection services)
  • Configure(IApplicationBuilder app);

  • .UseApplicationInsights() Application Insightsを使用すると、個人的にはマイクロソフトのクラウドという選択肢はあまり役に立たないと感じて、取り除くことができます.
  • .Build();はWebHostの構築を開始したが,実際にはこの構造は複雑な過程であり,後で詳しく検討する.