Asp.Net Core 基于(asp.net core 2.2) 创建asp .net core空项目

发布于:2025-05-01 ⋅ 阅读:(23) ⋅ 点赞:(0)

ASP.NET Core 应用程序的标准入口点,用于配置和启动一个 Web 主机(WebHost)。

1. Main 方法

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

• 作用:程序的入口方法,负责启动 Web 应用程序。

• 流程:

  1. CreateWebHostBuilder(args):创建一个 IWebHostBuilder 实例,用于配置 Web 主机。
  2. .Build():根据配置构建 IWebHost(Web 主机)。
  3. .Run():启动 Web 主机,开始监听 HTTP 请求。

2. CreateWebHostBuilder 方法

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

• 作用:创建并配置 IWebHostBuilder,定义应用程序的启动逻辑。

• 关键组件:

WebHost.CreateDefaultBuilder(args)

使用默认配置初始化 Web 主机,包括:
◦ Kestrel 作为默认 Web 服务器。

◦ 配置文件加载(如 `appsettings.json`)。

◦ 日志系统(如控制台、Debug 输出)。

◦ 依赖注入(DI)容器。

.UseStartup<Startup>()

指定启动类 `Startup`,用于进一步配置服务和中间件:
```csharp
public class Startup
{
    public void ConfigureServices(IServiceCollection services) { /* 注册服务 */ }
    public void Configure(IApplicationBuilder app) { /* 配置中间件 */ }
}
```

3. 代码优化建议
(1) 添加配置增强

WebHost.CreateDefaultBuilder(args)
    .UseStartup<Startup>()
    .ConfigureAppConfiguration((hostingContext, config) =>
    {
   
        // 加载环境变量或自定义 JSON 文件
        config.AddEnvironmentVariables()
              .AddJsonFile("customsettings.json", optional: true);
    })
    .ConfigureLogging(logging =>
    {
   
        // 自定义日志过滤
        logging.AddFilter("Microsoft", LogLevel.Warning);
    });

(2) 支持 HTTPS 和端口绑定

.UseKestrel(options =>
{
   
    options.Listen(IPAddress.Any, 5000); // HTTP
    options.Listen(IPAddress.Any, 5001, listenOptions =>
    {
   
        listenOptions.UseHttps("certificate.pfx", "password");
    });
})

(3) 集成 Serilog 日志库

.UseSerilog((hostingContext, loggerConfig) =>

网站公告

今日签到

点亮在社区的每一天
去签到