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

做里番网站犯法吗中建八局第一建设有限公司资质

做里番网站犯法吗,中建八局第一建设有限公司资质,青岛建设集团 招聘信息网站,陕西精诚展览装饰有限公司通过Rider调试的方式看了下ASP.NET Core 5.0的Web API默认项目#xff0c;重点关注Host.CreateDefaultBuilder(args)中的执行过程#xff0c;主要包括主机配置、应用程序配置、日志配置和依赖注入配置这4个部分。由于水平和篇幅有限#xff0c;先整体理解、建立框架#xf…   通过Rider调试的方式看了下ASP.NET Core 5.0的Web API默认项目重点关注Host.CreateDefaultBuilder(args)中的执行过程主要包括主机配置、应用程序配置、日志配置和依赖注入配置这4个部分。由于水平和篇幅有限先整体理解、建立框架后面再逐步细化对每个配置部分再详细拆解。一.创建默认主机Host.CreateDefaultBuilder1.创建主机构建器CreateHostBuilder(args)基于ASP.NET Core 5.0构建的Web API项目的Program.cs文件大家应该都很熟悉public class Program {public static void Main(string[] args){CreateHostBuilder(args).Build().Run();}public static IHostBuilder CreateHostBuilder(string[] args) Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder {webBuilder.UseStartupStartup();}); }2.创建默认构建器Host.CreateDefaultBuilder(args)本文重点讲解下Host.CreateDefaultBuilder(args)的执行过程Microsoft.Extensions.Hosting.Host是一个静态类包含2个方法public static IHostBuilder CreateDefaultBuilder() CreateDefaultBuilder(args: null); public static IHostBuilder CreateDefaultBuilder(string[] args);上面的方法最终调用的还是下面的方法下面的方法主要包括几个部分主机配置ConfigureHostConfiguration应用程序配置ConfigureAppConfiguration日志配置ConfigureLogging依赖注入配置UseDefaultServiceProvider。二.主机配置ConfigureHostConfiguration主机配置ConfigureHostConfiguration相关源码如下builder.UseContentRoot(Directory.GetCurrentDirectory()); builder.ConfigureHostConfiguration(config {config.AddEnvironmentVariables(prefix: DOTNET_);if (args ! null){config.AddCommandLine(args);} });1.内存配置源Directory.GetCurrentDirectory()当前目录指的就是D:\SoftwareProject\C#Program\WebApplication3\WebApplication3。2.环境变量配置源config.AddEnvironmentVariables(prefix: DOTNET_)添加了前缀为DOTNET_的环境变量。3.命令行配置源最开始认为参数args为null经过调试发现args的值string[0]并且args ! null所以会有命令行配置源CommandLineConfigurationSource。三.应用程序配置ConfigureAppConfiguration应用程序配置ConfigureAppConfiguration相关源码如下builder.ConfigureAppConfiguration((hostingContext, config) {IHostEnvironment env hostingContext.HostingEnvironment;bool reloadOnChange hostingContext.Configuration.GetValue(hostBuilder:reloadConfigOnChange, defaultValue: true);config.AddJsonFile(appsettings.json, optional: true, reloadOnChange: reloadOnChange).AddJsonFile($appsettings.{env.EnvironmentName}.json, optional: true, reloadOnChange: reloadOnChange);if (env.IsDevelopment() !string.IsNullOrEmpty(env.ApplicationName)){var appAssembly Assembly.Load(new AssemblyName(env.ApplicationName));if (appAssembly ! null){config.AddUserSecrets(appAssembly, optional: true);}}config.AddEnvironmentVariables();if (args ! null){config.AddCommandLine(args);} })1.程序运行的主机环境hostingContext.HostingEnvironment表示运行程序的主机环境比如开发环境或者生产环境。IHostEnvironment接口的数据结构为public interface IHostEnvironment {// Developmentstring EnvironmentName { get; set; }// WebApplication3string ApplicationName { get; set; }// D:\SoftwareProject\C#Program\WebApplication3\WebApplication3string ContentRootPath { get; set; }// PhysicalFileProviderIFileProvider ContentRootFileProvider { get; set; } }2.加载json配置文件接下来就是通过AddJsonFile()来添加配置文件了如下所示(1)Path(string)json文件的相对路径位置。(2)Optional(bool)指定文件是否是必须的如果为false那么如果找不到文件就会抛出文件找不到异常。(3)ReloadOnchange(bool)如果为true那么当改变配置文件应用程序也会随之更改而无需重启。在该项目中总共有2个配置文件分别是appsettings.json和appsettings.Development.json。3.添加用户秘钥配置源config.AddUserSecrets(appAssembly, optional: true)主要是在开发的过程中用来保护配置文件中的敏感数据的比如密码等。因为平时在开发中很少使用所以在此不做深入讨论如果感兴趣可参考[3]。四.日志配置ConfigureLogging日志配置ConfigureLogging相关源码如下.ConfigureLogging((hostingContext, logging) {bool isWindows RuntimeInformation.IsOSPlatform(OSPlatform.Windows);if (isWindows){// Default the EventLogLoggerProvider to warning or abovelogging.AddFilterEventLogLoggerProvider(level level LogLevel.Warning);}logging.AddConfiguration(hostingContext.Configuration.GetSection(Logging));logging.AddConsole();logging.AddDebug();logging.AddEventSourceLogger();if (isWindows){// Add the EventLogLoggerProvider on windows machineslogging.AddEventLog();}logging.Configure(options {options.ActivityTrackingOptions ActivityTrackingOptions.SpanId| ActivityTrackingOptions.TraceId| ActivityTrackingOptions.ParentId;}); })1.Windows日志级别从上述代码中可以看到是LogLevel.Warning及以上。2.日志的配置ILoggerProvider不同的实现方式有ConsoleLoggerProviderDebugLoggerProviderEventSourceLoggerProviderEventLogLoggerProviderTraceSourceLoggerProvider自定义。下面是日志配置涉及的相关代码logging.AddConsole(); //将日志输出到控制台 logging.AddDebug(); //将日志输出到调试窗口 logging.AddEventSourceLogger(); logging.AddEventLog();说明这一部分详细的日志分析可以参考[6]。3.ActivityTrackingOptionspublic enum ActivityTrackingOptions {None 0, //No traces will be included in the logSpanId 1, //The record will contain the Span identifierTraceId 2, //The record will contain the tracking identifierParentId 4, //The record will contain the parent identifierTraceState 8, //The record will contain the tracking statusTraceFlags 16, //The log will contain trace flags }在最新的.NET 7 Preview6中又增加了Tags(32)和Baggage(64)。五.依赖注入配置UseDefaultServiceProvider依赖注入配置UseDefaultServiceProvider相关源码如下.UseDefaultServiceProvider((context, options) {bool isDevelopment context.HostingEnvironment.IsDevelopment();options.ValidateScopes isDevelopment;options.ValidateOnBuild isDevelopment; });UseDefaultServiceProvider主要是设置默认的依赖注入容器。参考文献[1].NET Source Browserhttps://source.dot.net/[2]Safe storage of app secrets in development in ASP.NET Corehttps://docs.microsoft.com/en-us/aspnet/core/security/app-secrets?viewaspnetcore-6.0tabswindows[3]认识ASP.NET Core/Host及其配置解析https://zhuanlan.zhihu.com/p/343312339[4]源码解析.Net中Host主机的构建过程https://www.cnblogs.com/snailZz/p/15240616.html[5].NET Core通用Host源码分析https://www.cnblogs.com/yingbiaowang/p/15048495.html[6]基于.NetCore3.1系列--日志记录之日志配置揭秘https://www.cnblogs.com/i3yuan/p/13411793.html[7]基于.NetCore3.1系列--日志记录之日志核心要素揭秘https://www.cnblogs.com/i3yuan/p/13442509.html[8].NET5中Host.CreateDefaultBuilder(args)详解https://blog.csdn.net/qbc12345678/article/details/122983855[9]ASP.NET启动和运行机制https://www.jianshu.com/p/59cfaba4e2cb[10]ASP.Net Core解读通用主机和托管服务https://www.cnblogs.com/qtiger/p/12976207.html
http://www.zqtcl.cn/news/269753/

相关文章:

  • 怎么制作网站教程电商seo建站优化价格表
  • 黄平网站建设网站建设公司广告 晴天娃娃
  • 中山市 有限公司网站建设网站建设 福步 2018
  • 英语网站开发中国桥梁建设公司排名
  • php做的网站怎么运行公司网站备案查询
  • jsp 响应式网站模板设计类网站策划案
  • 建设银行网站怎么注销网银百度广告联盟
  • flash建网站教程天津市建设工程评标专家网
  • 合格的网站设计师需要会什么软件seo 深圳
  • 公司网站建设费用账务处理软文300字案例
  • 门户型网站特点网站营销推广的公司
  • wordpress gif主题seo兼职怎么收费
  • 商城免费建站系统手机端首页尺寸多少
  • 网站上存储播放视频怎么做wordpress 作品集 相册
  • 建设网工程信息南昌官网seo厂家
  • 上海网站seo牛巨微网页设计模板html代码个人介绍
  • 网站 架构 设计公司网站建设费怎么做账
  • 合肥电脑网站建站萍乡手机网站建设
  • 优化seo网站西安wordpress 做购物网站
  • 广州建设档案馆网站稿定设计app免费版官方
  • 橙色企业网站源码建设工程投标文件在哪个网站有发布
  • 服务器可以做网站吗深圳高端网站建设创新
  • 企业平台网站建设方案大连网络广告
  • 如何给网站做宣传新手怎么建立自己网站
  • 酒店和网站对接如何做开发网站那个好
  • 北京建设信源咨询有限公司网站快对小程序入口
  • 湖北人工智能建站系统软件城乡建设官网
  • 广东模板建站平台设计网站
  • 晋江市住房和城乡建设网站二进制可以做网站是吗
  • 企业网站优化的方式网站开发 -(广告)