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

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) =>
http://www.xdnf.cn/news/2065.html

相关文章:

  • vite+vue2+elementui构建之 package.json
  • 深度解析:从12306看混合云架构下的高并发系统设计
  • Z-Wave正通过自我革新,重塑在智能家居领域新定位
  • 2025年的营销趋势-矩阵IP
  • (Go Gin)上手Go Gin 基于Go语言开发的Web框架,本文介绍了各种路由的配置信息;包含各场景下请求参数的基本传入接收
  • 数据湖DataLake和传统数据仓库Datawarehouse的主要区别是什么?优缺点是什么?
  • FlinkSql入门与实践
  • Linux文件管理完全指南:从命名规则到压缩解压
  • OpenHarmony - 小型系统内核(LiteOS-A)(十),魔法键使用方法,用户态异常信息说明
  • 字节:视频一致性生成论文速读
  • 【滑动窗口+哈希表/数组记录】Leetcode 76. 最小覆盖子串
  • kafka整合flume与DStream转换
  • Linux软硬链接和动静态库(20)
  • mac brew 无法找到php7.2 如何安装php7.2
  • 【机器学习速记】面试重点/期末考试
  • 【音视频】⾳频处理基本概念及⾳频重采样
  • 企业级智能合同管理解决方案升级报告:道本科技携手DeepSeek打造智能合同管理新标杆
  • (六)机器学习---聚类与K-means
  • 基于AI应用创业IDEA:使用百度搜索开放平台的MCP广场智能推荐MCPServices服务
  • Java 安全:如何防止 DDoS 攻击?
  • 全栈国产化信创适配,构建安全可控的呼叫中心系统
  • uniapp-商城-37-shop 购物车 选好了 进行订单确认3 支付栏
  • 【vue】 实现浏览器自动播放音频的指南
  • MongoDB Shard Cluster
  • MySQL触法器
  • Cadence学习笔记之---原理图设计基本操作
  • 电子电子架构 --- 主机厂视角下ECU开发流程
  • 统计服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
  • 【XR手柄交互】Unity 中使用 InputActions 实现手柄控制详解(基于 OpenXR + Unity新输入系统(Input Actions))
  • MySQL表的操作 -- 表的增删改查