当前位置: 首页 > news >正文

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 应用程序。

• 流程:

  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); // HTTPoptions.Listen(IPAddress.Any, 5001, listenOptions =>{listenOptions.UseHttps("certificate.pfx", "password");});
})

(3) 集成 Serilog 日志库

.UseSerilog((hostingContext, loggerConfig) =>

相关文章:

  • vite+vue2+elementui构建之 vite.config.js
  • 优化算法
  • uniapp小程序开发入门01-快速搭建一个空白的项目并预览它
  • 用C语言实现——一个中缀表达式的计算器。支持用户输入和动画演示过程。
  • 文档编辑:reStructuredText全面使用指南 — 第一部分 介绍
  • 百度打响第一枪!通用超级智能体时代,真的来了
  • Spring 与 ActiveMQ 的深度集成实践(二)
  • OpenCv高阶(九)——背景建模
  • playwright的简单使用
  • Linux实验课
  • SQL进阶知识:九、高级数据类型
  • 【Pandas】pandas DataFrame rsub
  • 在构造函数内部和外部定义的方法区别
  • 【时时三省】(C语言基础)循环程序举例
  • AI 场景落地:API 接口服务 VS 本地部署,哪种更适合?
  • 管家婆财贸ERP BB105.销售按结算单位价格跟踪
  • PySide与Qt工具链的深度整合
  • C语言里位操作的应用
  • 【Git】连接github时的疑难杂症(DNS解析失败)
  • 【LeetCode 热题 100】滑动窗口最大值 / 最小覆盖子串 / 轮转数组 / 缺失的第一个正数
  • 福建省莆田市原副市长胡国防接受审查调查
  • 精准滴灌“种企业”,苏南强县常熟新的进阶密码
  • 白俄罗斯驻华大使:应发挥政党作用,以对话平台促上合组织发展与合作
  • 从篆刻书画到装帧设计,再看钱君匋的“艺兼众美”
  • 韩国首尔江南区一大型商场起火,消防部门正在灭火中
  • 中信证券:“国家队”未曾减持ETF,应充分相信国家维稳决心