Asp.Net Core 基于(asp.net core 2.2) 创建asp .net core空项目
文章目录
- ASP.NET Core 应用程序的标准入口点,用于配置和启动一个 Web 主机(WebHost)。
- `InProcess` 代码分析
- 解决 HTTP Error 500.31 - Failed to load ASP.NET Core runtime 的完整方案
- **`launchSettings.json` 配置文件分析**
- ASP.NET Core 中的配置源详解
ASP.NET Core 应用程序的标准入口点,用于配置和启动一个 Web 主机(WebHost)。
1. Main
方法
public static void Main(string[] args)
{CreateWebHostBuilder(args).Build().Run();
}
• 作用:程序的入口方法,负责启动 Web 应用程序。
• 流程:
CreateWebHostBuilder(args)
:创建一个IWebHostBuilder
实例,用于配置 Web 主机。.Build()
:根据配置构建IWebHost
(Web 主机)。.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); // HTTPoptions.Listen(IPAddress.Any, 5001, listenOptions =>{listenOptions.UseHttps("certificate.pfx", "password");});
})
(3) 集成 Serilog 日志库
.UseSerilog((hostingContext, loggerConfig) =>