当前位置: 首页 > 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.pierceye.com/news/269753/

相关文章:

  • 建设网站需要从哪方面考虑微信云开发
  • 做环评工作的常用网站大学两学一做专题网站
  • 网站设计的公司如何选seo 优化教程
  • 济南网站中企动力河南网站建设服务
  • 网站建设的定位是什么意思php网站开发实例视频
  • 做资讯类网站需要特殊资质吗宜昌网站排名优化
  • 百度怎么建立自己的网站科技公司网站设计公司
  • 长沙做网站的包吃包住4000网站图片如何做水印
  • wordpress的固定链接怎么设置包头整站优化
  • 瓯海建设网站中国建设劳动协会网站
  • 烟台专业做网站公司有哪些中企动力重庆分公司
  • iis 怎么绑定网站二级目录广东东莞市
  • 运城网站制作公司成crm软件
  • 阿里云网站备案登陆荆州网站开发
  • 06628 网页制作与网站建设深圳建筑人才网为什么电脑打不开
  • 企业网站建设方讯快速建站代理
  • 全面的基础微网站开发wordpress首页插件
  • 陕西省住房和城乡建设厅网站上怎么打印证书中盛客户管理软件
  • html网站标题怎么做的国外免费推广平台有哪些
  • 网站制作com cn域名有什么区别网站制作哪家好
  • 平湖网站设计北京广告公司名录
  • 不良网站进入窗口免费正能量安全的南昌网站制作
  • 商品交换电子商务网站开发网站首页制作公司
  • wordpress全站备份建设网站和推广
  • 广州市官网网站建设哪家好上海营销型网站建设公司
  • 江山网站制作瑞安自适应网站建设
  • 生意网官方网站高端建设网站
  • 公司网站建设南宁腾讯企业邮箱登录入口手机版
  • 简历网站推荐做网站公司是干什么的
  • 网站备案率是什么会展相关app和网站的建设情况