10.ASP.NET Core launchSettings.json file
这篇文章,我将带领大家学习asp.net core中的launchsettings.json文件。为了学习它,我们打开之前建的空白模板的asp.net core项目。
从上面的图片中你可以看到,我们项目的属性中有一个launchsettings.json文件。那么我们来一起学习这个重要的文件吧。
launchsettings.json文件
当我们使用visual studio或者.net core cli运行项目的时候,就会使用到launchsettings.json文件中的这些设置。
你需要特别记住的一点就是:launchsettings.json文件,仅仅只是在本地的电脑上使用。这也就是意味着,当我们发布asp.net core应用程序到生产环境的时候,这个文件是不需要的。
当你有一些特别的设置,你需要你的应用程序能够在发布部署的时候使用,那么你应该把这些设置写在appsettings.json文件中。通常,在asp.net core中,配置文件都是写在appsettings.json文件中的。我将会在下篇文章中讲到appsettings.json文件。
launchsettings.json文件中的配置信息
当你打开launchsettings.json文件,就会看到了这些配置信息:
在上面的图片中,你可以看到profiles有两个部分,一个是iis express,还有一个是emptytemplatecoreapp.
你需要记住的是:当你按ctrl+f5或者直接按f5,运行程序的时候,那么profiles中的”commandname”: “iis express”就会被使用。与此同时,当你使用.net core cli运行asp.net core应用程序的时候,那么profile中的“commandname”:”project”这段配置就会被使用。
然而,当你想要选择哪个配置文件将会被使用,可以选择visual studio中的这个下拉框选项:
commandname属性的值,可以是下面几个:
- iis express
- iis
- project
commandname属性的值,以及项目文件中的aspnetcorehostingmodel 节点的值,将会决定应用程序使用的是内部服务器,还是外部服务器(也叫反向代理服务器)。请看下面的表格。
修改startup类中的configure方法
修改configure方法,以便在浏览器中显示程序运行的时候的工作进程:
案例一:
当我们使用project作为命令行属性的值的时候,asp.net core是会忽略aspnetcorehostingmodel节点中的值的。然后kestrel服务器就是唯一的服务器来托管运行程序了,以及处理http请求。我们如下操作:选择【emptytemplatecoreapp】
然后运行应用程序:
任务管理器中可以看到:使用的主机是applicationframehost.exe
现在改变一下项目文件,在里面添加:<aspnetcorehostingmodel>inprocess</aspnetcorehostingmodel>
运行的结果还是一样,这是因为:commandname的属性是project,然后就会忽略aspnetcorehostingmodel节点的配置,这个时候,kestrel是唯一的服务器,来托管程序,并处理http请求。这也就验证了表格中的第一条。
案例二:
commandname选择iis express,并且aspnetcorehostingmodel选择inprocess,那么iis express将会是唯一的服务器,来托管程序,处理http请求了。
运行程序:可以看到这时候,进程名称就是iisexpres了。
案例三:
comandname选择iis express ,aspnetcorehostingmodel选择outofprocess.这个时候,asp.net core使用iis express作为外部服务器,kestrel服务器作为内部服务器。外部服务器iis express将会接收http请求,然后传递给内部服务器来处理。我们来验证一下:
运行程序:
怎样在visual studio 中使用图形用户界面来获取设置commandname?
右键项目--选址属性,然后找到debug,就看到了:
使用图形界面,我们同样可以改变launchsettings.json中的设置。这里你可以看到环境变量“aspnetcore_environment”的值是”development”,当你运行项目的时候,你可以改变成“staging”或者“production”,当然你还可以自己添加环境变量。并且你还可以根据环境变量做一些事情,例如:
上面的图片中,将会检查是否是开发环境,如果是,就执行开发环境下的异常页面。在后面的文章中,将会讲到更多的环境变量。
下篇文章将要讲到asp.net core appsettings.json文件。在这篇文章我已经详细介绍了launchsettings.json文件,大家清楚了么?
下一篇: 女票的老爸最善良了
推荐阅读
-
10.ASP.NET Core launchSettings.json file
-
ASP.Net Core 2.2 InProcess托管的Bug:unable to open database file
-
ASP.NET Core launchsettings.json 文件
-
STM32程序编写报错集(1)——stm32f10x.h(478): error: #5: cannot open source input file “core_cm3.h“
-
10.ASP.NET Core launchSettings.json file
-
ASP.NET Core launchsettings.json 文件
-
ASP.Net Core 2.2 InProcess托管的Bug:unable to open database file