ASP.NET CoreのMain関数
以前は、伝統的なASP.NEが開発した時はAspを知らない人が多かった.Netのプログラムエントリはどこにありますか.伝説の Microsoft.AspNetCore.Server.Kestrel(クロスプラットフォーム対応) Microsoft.AspNetCore.Server.WebListener(Windowsのみ) ConfigureServices(IServiceCollection services) Configure(IApplicationBuilder app);
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サーバーを持っています..UseContentRoot(Directory.GetCurrentDirectory())
アプリケーションのルートディレクトリを設定します.このディレクトリには、アプリケーション自体の内部に必要なリソースが格納されています(WebRootPath
との違いに注意してください.WebRootPath
が指すディレクトリは、HTTPによってアクセスを要求できるリソースを格納するために使用されます.一般的にはwwwroot
フォルダです)..UseIISIntegration()
は、アプリケーションがIIS内で実行されることをサポートし(実際にはIISを逆エージェントとして使用する)、アプリケーションがIIS内で走らない場合は、この行を削除することができます..UseStartup()
アプリケーションの起動クラスを指定する、Startup
はASP.NET Coreアプリケーションの起動中に非常に重要なクラスです.ASP.NET Coreはこのクラスのタイプ制約を強制していませんが、このクラスには次の2つの方法が必要です..UseApplicationInsights()
Application Insightsを使用すると、個人的にはマイクロソフトのクラウドという選択肢はあまり役に立たないと感じて、取り除くことができます..Build();
はWebHostの構築を開始したが,実際にはこの構造は複雑な過程であり,後で詳しく検討する.