[{"data":1,"prerenderedAt":690},["ShallowReactive",2],{"article-aspnet-core-3-things-i-learned-pro-tips-migration-to-aspnet-core-3":3},{"article":4,"tags":376,"previous":391,"next":533},{"id":5,"title":6,"author":7,"body":8,"createdAt":365,"description":366,"extension":367,"img":59,"meta":368,"navigation":369,"path":370,"seo":371,"stem":372,"tags":373,"updatedAt":365,"__hash__":375},"articles\u002Farticles\u002Faspnet-core-3-things-i-learned-pro-tips-migration-to-aspnet-core-3.md","ASP.NET Core 3 Things I Learned \u002F Pro Tips \u002F Migration to ASP.NET Core 3",null,{"type":9,"value":10,"toc":363},"minimark",[11,46,63,71,74,200,215,221,247,270,275,280,294,359],[12,13,14,22,25,28,31,34,37,40,43],"ul",{},[15,16,17,18],"li",{},"Starting up the web application with ",[19,20,21],"strong",{},"dotnet run",[15,23,24],{},"there are CLI parameters that you can use to set environment, port etc.",[15,26,27],{},"uses Kestrel to host the application",[15,29,30],{},"windows authentication cannot be turned on with dotnet run",[15,32,33],{},"can configure default behavior from within Visual Studio project properties",[15,35,36],{},"Debug, select Launch “Project” then you can set the App Url, default page, etc.",[15,38,39],{},"Hitting debug F5 within Visual Studio when the {Project Name} profile is selected hosts the application on Kestrel similar to dotnet run",[15,41,42],{},"dotnet run –e development will set the environment variable to ‘production’ (",[15,44,45],{},"in the following image you can see that I set the default environment for Kestrel runs to Development",[47,48,49,50],"p",{},"ASPNETCORE_ENVIRONMENT Development\n",[51,52,54],"a",{"href":53},"\u002Farticles\u002Fimages\u002Fimage_637115214952391737.png",[55,56],"img",{"style":57,"title":58,"src":59,"alt":58,"width":60,"height":61,"border":62},"border: 0px currentcolor; display: inline; background-image: none;","image","\u002Farticles\u002Fimages\u002Fimage_thumb_637115214953620084.png",545,336,0,[12,64,65,68],{},[15,66,67],{},"JSON properties are now lower case in asp.net core (i.e. when return json from a method Json({object here}) would have all properties changed to lower case)",[15,69,70],{},"use the following code to avoid camel case names by default \nservices.AddControllersWithViews()\n       .AddJsonOptions(options => options.SerializerSettings.ContractResolver = new DefaultContractResolver());",[47,72,73],{},"{\"Id\":9000,\"FullName\":\"John Smith\"} would be serialized to {\"id\":9000,\"fullName\":\"John Smith\"}       ",[12,75,76,87,90,97,167,184,193],{},[15,77,78,79,86],{},"Debug ASP.NET Core apps in Visual Studio IIS\u002FIISExpress etc. reference ",[51,80,85],{"href":81,"target":82,"rel":83},"https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Fvisualstudio\u002Fdebugger\u002Fhow-to-enable-debugging-for-aspnet-applications?view=vs-2019","_blank",[84],"noopener","here","        ",[15,88,89],{},"After setting a application within IIS, setting authentication to windows, selecting application pool with no managed code – you may get the following…\nThe in process request handler, Microsoft.AspNetCore.Server.IIS, was not referenced in the application.",[15,91,92],{},[51,93,96],{"href":94,"target":82,"rel":95},"https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Faspnet\u002Fcore\u002Fhost-and-deploy\u002Fiis\u002F?view=aspnetcore-2.2",[84],"Host ASP.NET Core on Windows with IIS",[15,98,99,100,103,107],{},"In order to ready http request bodies in a synchronous manner I had to add following service configuration\n",[51,101],{"href":102},"https:\u002F\u002Fstackoverflow.com\u002Fquestions\u002F47735133\u002Fasp-net-core-synchronous-operations-are-disallowed-call-writeasync-or-set-all",[51,104,102],{"href":102,"rel":105},[106],"nofollow",[108,109,114],"pre",{"className":110,"code":111,"language":112,"meta":113,"style":113},"language-cs shiki shiki-themes github-light github-dark","\u002F\u002F If using Kestrel: \n\u002F\u002Fservices.Configure&lt;KestrelServerOptions>(options => \n\u002F\u002F{ \n\u002F\u002Foptions.AllowSynchronousIO = true; \n\u002F\u002F});\n\u002F\u002F If using IIS: \nservices.Configure > IISServerOptions>(options => { \noptions.AllowSynchronousIO = true; })  \n","cs","",[115,116,117,125,131,137,143,149,155,161],"code",{"__ignoreMap":113},[118,119,122],"span",{"class":120,"line":121},"line",1,[118,123,124],{},"\u002F\u002F If using Kestrel: \n",[118,126,128],{"class":120,"line":127},2,[118,129,130],{},"\u002F\u002Fservices.Configure&lt;KestrelServerOptions>(options => \n",[118,132,134],{"class":120,"line":133},3,[118,135,136],{},"\u002F\u002F{ \n",[118,138,140],{"class":120,"line":139},4,[118,141,142],{},"\u002F\u002Foptions.AllowSynchronousIO = true; \n",[118,144,146],{"class":120,"line":145},5,[118,147,148],{},"\u002F\u002F});\n",[118,150,152],{"class":120,"line":151},6,[118,153,154],{},"\u002F\u002F If using IIS: \n",[118,156,158],{"class":120,"line":157},7,[118,159,160],{},"services.Configure > IISServerOptions>(options => { \n",[118,162,164],{"class":120,"line":163},8,[118,165,166],{},"options.AllowSynchronousIO = true; })\n",[15,168,169,170,175,176],{},"dotnet – info Shows what versions are installed on your workstation (",[51,171,174],{"href":172,"target":82,"rel":173},"https:\u002F\u002Fweblog.west-wind.com\u002Fposts\u002F2018\u002FJun\u002F05\u002FWhich-NET-Core-Runtime-Download-do-you-need",[84],"Reference Rick Strahl",")\n",[51,177,179],{"href":178},"\u002Farticles\u002Fimages\u002Fimage_637115214954889487.png",[55,180],{"style":57,"title":58,"src":181,"alt":58,"width":182,"height":183,"border":62},"\u002Farticles\u002Fimages\u002Fimage_thumb_637115214956154680.png",353,206,[15,185,186,187,190],{},"This looks really interesting but I have yet to install\u002Ftry it out Live Reload using dotnet watch ",[51,188],{"href":189},"https:\u002F\u002Fweblog.west-wind.com\u002Fposts\u002F2019\u002FJun\u002F03\u002FBuilding-Live-Reload-Middleware-for-ASPNET-Core",[51,191,189],{"href":189,"rel":192},[106],[15,194,195,196,199],{},"IHostBuilder vs IWebHostBuilder – ASP.NET Core is used to build http endpoints using Kestrel web server. \nIWebHostbuilder ",[19,197,198],{},"remains for backward compatibility only",", and was used to encapsulate DI, Logging and configuration.  This was used in earlier versions of ASP.NET Core 3 for http workloads.",[47,201,202,203,208,209,214],{},"The default .NET Core 3 ASP.NET Core template sets up by default in the program.cs IHostBuilder, which is the ",[51,204,207],{"href":205,"target":82,"rel":206},"https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Faspnet\u002Fcore\u002Ffundamentals\u002Fhost\u002Fweb-host?view=aspnetcore-3.1",[84],"recommended"," for all app types.  Documentation can be found at ",[51,210,213],{"href":211,"target":82,"rel":212},"https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Faspnet\u002Fcore\u002Ffundamentals\u002Fhost\u002Fgeneric-host?view=aspnetcore-3.1",[84],"docs.microsoft.com",".  A host can encapsulates dependency injection, logging, configuration, IHostedService implementations.  Hosting is no longer bound to Kestrel and no longer bound to ASP.NET Core (oddly, this means you can start a host that doesn’t require Kestrel and doesn’t even need the ASP.NET Core Framework)",[47,216,217,220],{},[19,218,219],{},"CreateHostBuilder"," has the following defaults",[12,222,223,236,239],{},[15,224,225,226,230,231,235],{},"Sets the ",[51,227,229],{"href":228},"https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Faspnet\u002Fcore\u002Ffundamentals\u002Findex?view=aspnetcore-3.1#content-root","content root"," to the path returned by ",[51,232,234],{"href":233},"https:\u002F\u002Fdocs.microsoft.com\u002Fdotnet\u002Fapi\u002Fsystem.io.directory.getcurrentdirectory","GetCurrentDirectory",".",[15,237,238],{},"Loads host configuration from:\n----- Environment variables prefixed with \"DOTNET_\".\n----- Command-line arguments.",[15,240,241,242,246],{},"Loads app configuration from:\n----- appsettings.json.\n----- appsettings.{Environment}.json.\n----- ",[51,243,245],{"href":244},"https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Faspnet\u002Fcore\u002Fsecurity\u002Fapp-secrets?view=aspnetcore-3.1","Secret Manager"," when the app runs in the Development environment.\n----- Environment variables.\n----- Command-line arguments.",[12,248,249,257],{},[15,250,251,252,256],{},"Adds the following ",[51,253,255],{"href":254},"https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Faspnet\u002Fcore\u002Ffundamentals\u002Flogging\u002Findex?view=aspnetcore-3.1","logging"," providers:\n----- Console\n----- Debug\n----- EventSource\n----- EventLog (only when running on Windows)",[15,258,259,260,264,265,269],{},"Enables ",[51,261,263],{"href":262},"https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Faspnet\u002Fcore\u002Ffundamentals\u002Fdependency-injection?view=aspnetcore-3.1#scope-validation","scope validation"," and ",[51,266,268],{"href":267},"https:\u002F\u002Fdocs.microsoft.com\u002Fdotnet\u002Fapi\u002Fmicrosoft.extensions.dependencyinjection.serviceprovideroptions.validateonbuild#Microsoft_Extensions_DependencyInjection_ServiceProviderOptions_ValidateOnBuild","dependency validation"," when the environment is Development.",[47,271,272],{},[19,273,274],{},"ConfigureWebHostDefaults ",[12,276,277],{},[15,278,279],{},"Loads host configuration from environment variables prefixed with \"ASPNETCORE_\".",[12,281,282],{},[15,283,284,285,289,290,235],{},"Sets ",[51,286,288],{"href":287},"https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Faspnet\u002Fcore\u002Ffundamentals\u002Fservers\u002Fkestrel?view=aspnetcore-3.1","Kestrel"," server as the web server and configures it using the app's hosting configuration providers. For the Kestrel server's default options, see ",[51,291,293],{"href":292},"https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Faspnet\u002Fcore\u002Ffundamentals\u002Fservers\u002Fkestrel?view=aspnetcore-3.1#kestrel-options","Kestrel web server implementation in ASP.NET Core",[12,295,296,303,310,316,324,330,333,342,351],{},[15,297,298,299,235],{},"Adds ",[51,300,302],{"href":301},"https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Faspnet\u002Fcore\u002Ffundamentals\u002Fservers\u002Fkestrel?view=aspnetcore-3.1#host-filtering","Host Filtering middleware",[15,304,298,305,309],{},[51,306,308],{"href":307},"https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Faspnet\u002Fcore\u002Fhost-and-deploy\u002Fproxy-load-balancer?view=aspnetcore-3.1#forwarded-headers","Forwarded Headers middleware"," if ASPNETCORE_FORWARDEDHEADERS_ENABLED=true.",[15,311,312,313,235],{},"Enables IIS integration. For the IIS default options, see ",[51,314,96],{"href":315},"https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Faspnet\u002Fcore\u002Fhost-and-deploy\u002Fiis\u002Findex?view=aspnetcore-3.1#iis-options",[15,317,318,319,323],{},"Configuration for Framework-provided services can be found ",[51,320,85],{"href":321,"target":82,"rel":322},"https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Faspnet\u002Fcore\u002Ffundamentals\u002Fhost\u002Fgeneric-host?view=aspnetcore-3.1#framework-provided-services",[84]," (any host lifetime, environment etc.)",[15,325,326,327],{},"Unable to resolve service for type 'Microsoft.Extensions.Logging.ILoggerFactory' while attempting to activate 'Web.Startup'. – ",[19,328,329],{},"Exception\n",[15,331,332],{},"the startup constructor use to look like public Startup(IConfiguration configuration, ILoggerFactory loggerFactory)",[15,334,335,336,341],{},"new to ASP.NET Core 3 it is no longer possible to inject ILogger in Startup.cs and Program.cs (Reference: ",[51,337,340],{"href":338,"target":82,"rel":339},"https:\u002F\u002Fgithub.com\u002Faspnet\u002FAnnouncements\u002Fissues\u002F353",[84],"Github",")",[15,343,344,345,350],{},"Another ",[51,346,349],{"href":347,"target":82,"rel":348},"https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Fazure\u002Fazure-monitor\u002Fapp\u002Filogger#capture-ilogger-logs-from-startupcs-and-programcs-in-aspnet-core-apps",[84],"reference"," to this change specifically calls this out",[15,352,353,354],{},"Changes with ASP.NET Core 3 to Program.cs \u002F Startup.cs\nReference: ",[51,355,358],{"href":356,"target":82,"rel":357},"https:\u002F\u002Fandrewlock.net\u002Fexploring-the-new-project-file-program-and-the-generic-host-in-asp-net-core-3\u002F",[84],"Andrew Lock",[360,361,362],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":113,"searchDepth":127,"depth":127,"links":364},[],"2019-12-09T20:51:35.746Z","Moving from ASP.NET Core 2 to ASP.NET 3 (Migration) there were a number of 'things' I picked up and decided I would document as I moved through the application.  New Program.cs and Startup.cs changes, new logging configuration changes, and default ASP.NET Core tips included.","md",{},true,"\u002Farticles\u002Faspnet-core-3-things-i-learned-pro-tips-migration-to-aspnet-core-3",{"title":6,"description":366},"articles\u002Faspnet-core-3-things-i-learned-pro-tips-migration-to-aspnet-core-3",[374],"netcore","w0iFgfavvdV8-1UR0gCTw4qVYXmyAzFa1CYkep7Rz8M",[377],{"id":378,"title":379,"body":380,"description":384,"extension":367,"img":385,"meta":386,"name":374,"navigation":369,"path":387,"seo":388,"stem":389,"__hash__":390},"tags\u002Ftags\u002Fnetcore.md","Netcore",{"type":9,"value":381,"toc":382},[],{"title":113,"searchDepth":127,"depth":127,"links":383},[],".NET Core is a new version of .NET Framework, which is a free, open-source, general-purpose development platform maintained by Microsoft. It is a cross-platform framework that runs on Windows, macOS, and Linux operating systems.","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1598313183973-4effcded8d5e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=675&q=80",{},"\u002Ftags\u002Fnetcore",{"description":384},"tags\u002Fnetcore","D5BWCPpKVXJTUKU0TRuD3sWQ9rXtqETGkxzHAK__g5w",{"id":392,"title":393,"author":7,"body":394,"createdAt":523,"description":524,"extension":367,"img":525,"meta":526,"navigation":369,"path":527,"seo":528,"stem":529,"tags":530,"updatedAt":523,"__hash__":532},"articles\u002Farticles\u002Fstring-comparisons.md","String Comparisons",{"type":9,"value":395,"toc":521},[396,399,404,411,415,421,425,431,435,441,445,451,455,465,468,481,510,519],[47,397,398],{},"In .NET there are 6 ways to compare strings.  Really? Why is it so difficult?",[400,401,403],"h4",{"id":402},"ordinal","Ordinal",[47,405,406,407,410],{},"Performs a simple byte comparison that is independent of language. This is most appropriate when comparing strings that are generated programmatically or ",[19,408,409],{},"when comparing case-sensitive resources"," such as passwords.",[400,412,414],{"id":413},"ordinalignorecase","OrdinalIgnoreCase",[47,416,417,418,235],{},"Treats the characters in the strings to compare as if they were converted to uppercase using the conventions of the invariant culture, and then performs a simple byte comparison that is independent of language. This is most appropriate when comparing strings that are generated programmatically or when",[19,419,420],{}," comparing case-insensitive resources such as paths and filenames",[400,422,424],{"id":423},"invariantculture","InvariantCulture",[47,426,427,428,235],{},"Compares strings in a linguistically relevant manner, but it is not suitable for display in any particular culture. Its",[19,429,430],{}," major application is to order strings in a way that will be identical across cultures",[400,432,434],{"id":433},"invariantcultureignorecase","InvariantCultureIgnoreCase",[47,436,437,438,235],{},"Compares strings in a linguistically relevant manner that ignores case, but it is not suitable for display in any particular culture. Its major application is to ",[19,439,440],{},"order strings in a way that will be identical across cultures",[400,442,444],{"id":443},"currentculture","CurrentCulture",[47,446,447,448],{},"Can be used when strings are linguistically relevant. For example, if strings are displayed to the user, or if strings are the result of user interaction,",[19,449,450],{}," culture-sensitive string comparison should be used to order the string data.",[400,452,454],{"id":453},"currentcultureignorecase","CurrentCultureIgnoreCase",[47,456,457,458,235,461,464],{},"Can be used when strings are linguistically relevant but their case is not. For example, if strings are displayed to the user but case is unimportant, culture-sensitive, ",[19,459,460],{},"case-insensitive string comparison should be used to order the string data",[462,463],"br",{},"\nTip: You should always specify explicitly the comparer as the default value is not consistent.",[47,466,467],{},"For instance,",[47,469,470,473,474,477,478,480],{},[115,471,472],{},"string.IndexOf"," uses the current culture whereas ",[115,475,476],{},"string.Equals"," uses Ordinal.",[462,479],{},"\ni.e.",[108,482,484],{"className":110,"code":483,"language":112,"meta":113,"style":113},"string.Equals(\"\", \"\", StringComparison.Ordinal); \n\nnew [] { \"\" }.Contains(\"\", StringComparer.Ordinal); \n\nnew Dictionary(StringComparer.Ordinal); \n\n",[115,485,486,491,496,501,505],{"__ignoreMap":113},[118,487,488],{"class":120,"line":121},[118,489,490],{},"string.Equals(\"\", \"\", StringComparison.Ordinal); \n",[118,492,493],{"class":120,"line":127},[118,494,495],{"emptyLinePlaceholder":369},"\n",[118,497,498],{"class":120,"line":133},[118,499,500],{},"new [] { \"\" }.Contains(\"\", StringComparer.Ordinal); \n",[118,502,503],{"class":120,"line":139},[118,504,495],{"emptyLinePlaceholder":369},[118,506,507],{"class":120,"line":145},[118,508,509],{},"new Dictionary(StringComparer.Ordinal);\n",[47,511,512,513,518],{},"Refer to ",[51,514,517],{"href":515,"target":82,"rel":516},"https:\u002F\u002Fwww.meziantou.net\u002Fstring-comparisons-are-harder-than-it-seems.htm",[84],"blog"," for additional samples and Rosyln analyzer to help with coding within your IDE.",[360,520,362],{},{"title":113,"searchDepth":127,"depth":127,"links":522},[],"2019-12-10T17:37:51.332Z","Yes! There really are 6 ways to compare strings within .NET (I suspect other languages as well).  Hopefully this will shed some light on the options.","\u002Farticles\u002Fimages\u002FgzWyiS6VDt.png",{},"\u002Farticles\u002Fstring-comparisons",{"title":393,"description":524},"articles\u002Fstring-comparisons",[374,531],"sql","Ib87YXw71UKKaBTOHX5m6SHBrTG_PcVtHJ-LK6igPl0",{"id":534,"title":535,"author":7,"body":536,"createdAt":682,"description":683,"extension":367,"img":7,"meta":684,"navigation":369,"path":685,"seo":686,"stem":687,"tags":688,"updatedAt":682,"__hash__":689},"articles\u002Farticles\u002Faspnet-core-slow-start-up.md","ASP.NET CORE–Slow Start Up",{"type":9,"value":537,"toc":680},[538,541,635,638,668,677],[47,539,540],{},"I was trying to determine why my asp.net core application as so slow during startup (F5 w\u002Fdebugging).\nI believe I found one of the reasons.\nBy default, a new asp.net core application has an appsettings.Development.json file. \nWithin this file there are several settings to set the default log level.  Typically, you will see something like the following",[108,542,546],{"className":543,"code":544,"language":545,"meta":113,"style":113},"language-json shiki shiki-themes github-light github-dark","{ \n\"Logging\": \n    { \n        \"LogLevel\": \n        {  \n            \"Default\": \"Debug\", \n            \"System\": \"Information\", \n            \"Microsoft\": \"Information\"\n        } \n    }  \n}  \n","json",[115,547,548,554,563,568,575,580,595,607,617,623,629],{"__ignoreMap":113},[118,549,550],{"class":120,"line":121},[118,551,553],{"class":552},"sVt8B","{ \n",[118,555,556,560],{"class":120,"line":127},[118,557,559],{"class":558},"sj4cs","\"Logging\"",[118,561,562],{"class":552},": \n",[118,564,565],{"class":120,"line":133},[118,566,567],{"class":552},"    { \n",[118,569,570,573],{"class":120,"line":139},[118,571,572],{"class":558},"        \"LogLevel\"",[118,574,562],{"class":552},[118,576,577],{"class":120,"line":145},[118,578,579],{"class":552},"        {  \n",[118,581,582,585,588,592],{"class":120,"line":151},[118,583,584],{"class":558},"            \"Default\"",[118,586,587],{"class":552},": ",[118,589,591],{"class":590},"sZZnC","\"Debug\"",[118,593,594],{"class":552},", \n",[118,596,597,600,602,605],{"class":120,"line":157},[118,598,599],{"class":558},"            \"System\"",[118,601,587],{"class":552},[118,603,604],{"class":590},"\"Information\"",[118,606,594],{"class":552},[118,608,609,612,614],{"class":120,"line":163},[118,610,611],{"class":558},"            \"Microsoft\"",[118,613,587],{"class":552},[118,615,616],{"class":590},"\"Information\"\n",[118,618,620],{"class":120,"line":619},9,[118,621,622],{"class":552},"        } \n",[118,624,626],{"class":120,"line":625},10,[118,627,628],{"class":552},"    }  \n",[118,630,632],{"class":120,"line":631},11,[118,633,634],{"class":552},"}\n",[47,636,637],{},"Keep in mind the order of settings are as follows going from very verbose to turned off.",[12,639,640,643,646,649,652,655,658],{},[15,641,642],{},"Trace (Very Verbose)",[15,644,645],{},"Debug",[15,647,648],{},"Information",[15,650,651],{},"Warning",[15,653,654],{},"Error",[15,656,657],{},"Critical",[15,659,660,661,663,664,667],{},"None",[462,662],{},"\nI found that setting my development log settings to anything above Warning improved startup up time ",[19,665,666],{},"significantly","!",[47,669,670,671,676],{},"After I figured out above I did come across a Rick Strahl ",[51,672,675],{"href":673,"target":82,"rel":674},"https:\u002F\u002Fweblog.west-wind.com\u002Fposts\u002F2018\u002FDec\u002F31\u002FDont-let-ASPNET-Core-Default-Console-Logging-Slow-your-App-down#summary",[84],"post",".  If you don’t follow Rick do.",[360,678,679],{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":113,"searchDepth":127,"depth":127,"links":681},[],"2019-12-08T03:45:40.058Z","In an effort to speed up my development process, I determined that changing the logging level, even in development made a huge difference.  Keep this in mind, and let me know if you find this useful.",{},"\u002Farticles\u002Faspnet-core-slow-start-up",{"title":535,"description":683},"articles\u002Faspnet-core-slow-start-up",[374],"Q1_YJbQEIsPuw5Us9AG0sFQVIpdMJzmtaPXHFL-GQ80",1781574765175]