记一次读取json配置文件,引发的堆栈溢出

摘要:
paramname=“JsonFileName”>Json文件路径<ReloadOnChange=true}).Build();长时间运行后,堆栈将溢出,然后将其更改为publicstaticHostBuilderCreateHostBuilder(string[]args)=>

读取配置文件的原代码

/// <summary>
        /// 获取配置
        /// </summary>
        /// <param name="JsonFileName">json文件路径</param>
        /// <returns></returns>
        public static IConfiguration GetConfiguration(string JsonFilePath)
        {
            //ReloadOnChange = true 当appsettings.json被修改时重新加载            
            IConfiguration Configuration = new ConfigurationBuilder()
            .Add(new JsonConfigurationSource { Path = JsonFilePath, ReloadOnChange = true })
            .Build();
            return Configuration;
        }

每次需要获取配置信息时调用该方法,读取对应的配置json放到Configuration中

问题的原因:频繁读取时就会一直消耗堆栈内存,运行时间长了之后就会堆栈溢出

后来改成

public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureAppConfiguration((hostingContext, configBuilder) =>
                {
                    configBuilder
                        .AddJsonFile("Config/Common.json");
                })
                .UseServiceProviderFactory(new AutofacServiceProviderFactory())
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>().UseUrls("http://*:3011");
                });

程序加载时将配置加入内存中

从此再无堆栈溢出

免责声明:文章转载自《记一次读取json配置文件,引发的堆栈溢出》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C++中清空缓冲区element 表格回显默认选中的一行在第一行显示下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Kafka生产者案例报警告SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".

一、SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". 这个报警告的原因简单来说时因为slf4j的版本和log4j的版本不匹配。 解决办法:   1.在你的maven库中查找你的slf4j版本,若有两个,最后选版本低的,因为本人选择高版本还是报错;      2.登陆该maven...

新浪实时股票数据接口1

股票数据的获取目前有如下两种方法可以获取:1. http/javascript接口取数据 2. web-service接口 1.http/javascript接口取数据 1.1Sina股票数据接口 以大秦铁路(股票代码:601006)为例,如果要获取它的最新行情,只需访问新浪的股票数据接口:http://hq.sinajs.cn/list=sh601006...

Bing Maps进阶系列三:使用地图图像服务(ImageryService)

  地图图像服务(ImageryService)提供了根据地理位置(经度和纬度)坐标和地图的缩放级别解析出对应于地图图片系统的完整地图数据元数据,包括图片映射地址、图片大小等一系列详细参数。通过该服务的服务接口也可以反向实现通过指定地理位置坐标、地图缩放级别和图片大小(高度和宽度)来生成不同的地图图片。   一、添加ImageryService的Web服务引...

vue的学习总结---事件处理

v-on的理解 监听DOM元素的事件,并在触发时执行一些js代码 <template> <div> <!-- v-on监听DOM事件,并在触发时做一些js的操作,如下代码可以将js操作直接放在事件中 --> <button v-on:click="num++">点击按钮+1</but...

Python读取大文件的"坑“与内存占用检测

Python高级教程- Python进阶|Scrapy教程|Python高级|Python深入 (pythontab.com) python读写文件的api都很简单,一不留神就容易踩”坑“。笔者记录一次踩坑历程,并且给了一些总结,希望到大家在使用python的过程之中,能够避免一些可能产生隐患的代码。 1.read()与readlines()随手搜索pyt...

【原创】QT简单计算器

代码 //main.cpp #include "calculator_111.h" #include <QtWidgets/QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); Calculator_111 w; w.show(); retu...