美文网首页
ASP.NET Core 启动(1)

ASP.NET Core 启动(1)

作者: 唐九十九藏 | 来源:发表于2018-11-06 22:37 被阅读0次

ASP.NET Core 应用是一个控制台应用

它在 Program.csMain 方法中创建 Web 服务器。
Main 方法整个应用的入口:

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

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>();
}

.NET Core 的宿主WebHost主要执行以下任务:

Main方法通过生成器模式来调用WebHost.CreateDefaultBuilder来创建宿主主机环境。生成器提供定义 Web 服务器(例如,UseKestrel)和启动类 (UseStartup) 的方法。

在上面的例子中,默认分配了 Kestrel Web 服务器

IWebHostBuilder 是 调用WebHost.CreateDefaultBuilder 的返回类型,它提供了许多可选方法。 其中的一些方法包括用于在 HTTP.sys 中托管应用的 UseHttpSys,以及用于指定根内容目录的 UseContentRoot,还有提供BuildRun 方法生成 IWebHost 对象,该对象启动后就开始托管应用并开始侦听 HTTP 请求。


Startup 类用于定义请求处理管道和配置注入应用所需的任何服务。 Startup 必须是公共类,并包含以下方法:

public class Startup
{
    // This method gets called by the runtime. Use this method
    // to add services to the container.
    public void ConfigureServices(IServiceCollection services)
    {
    }

    // This method gets called by the runtime. Use this method
    // to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app)
    {
    }
}

ConfigureServices 定义应用所使用的服务(所谓服务就是一类第三方类库)(如 ASP.NET Core MVC、Entity Framework Core 和标识)。Configure 定义在请求管道中调用的中间件

总上所述:

  1. ASP.NET Core 是一个控制应用。
  2. ASP.NET Core 的启动入口是在 Program.csMain 方法中。
  3. ASP.NET Core 启动会初始化一个宿主,该宿主用来托管应用。
  4. ASP.NET Core 因为是一个控制台应用,所以肯定是没有http能力的,于是内置了一个Web服务。
  5. ASP.NET Core 是一个大框架,该框架可以跨平台。
  6. ASP.NET Core 的启动就是初始化一个 IWebHost
    对象。

接下来,我开始讲Startup相关,依然是启动过程。

一个每日更新的干货公众号

相关文章

网友评论

      本文标题:ASP.NET Core 启动(1)

      本文链接:https://www.haomeiwen.com/subject/skvpxqtx.html