launchSettings.json文件
当我们使用Visual Studio或者.NET Core CLI运行项目的时候,就会使用到LaunchSettings.json文件中的这些设置。
你需要特别记住的一点就是:LaunchSettings.json文件,仅仅只是在本地的电脑上使用。这也就是意味着,当我们发布ASP.NET Core应用程序到生产环境的时候,这个文件是不需要的。
当你有一些特别的设置,你需要你的应用程序**能够在发布部署的时候使用,那么你应该把这些设置写在appSettings.json**文件中。通常,在ASP.NET Core中,配置文件都是写在appsettings.json文件中的。
launchSettings.json文件中的配置信息
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FzYZckeK-1668671296482)(https://s2.loli.net/2022/11/11/EOy3laniA7Mt5Cu.png)]](https://i-blog.csdnimg.cn/blog_migrate/6483190904000a9fa08df42532904a93.png)
在上面的图片中,你可以看到profiles有两个部分,一个是IIS Express,还有一个是OnlineAnswerSystem_1.
你需要记住的是:当你按CTRL+F5或者直接按F5,运行程序的时候,那么profiles中的”commandName”: “IIS Express”就会被使用。与此同时,当你使用.NET Core CLI运行ASP.NET Core应用程序的时候,那么profile中的**“commandName”:”Project**”这段配置就会被使用。

然而,当你想要选择哪个配置文件将会被使用,可以选择Visual Studio中的这个下拉框选项:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JPcFunjH-1668671229527)(https://s2.loli.net/2022/11/11/y4SmYeaMIX1qKA2.png)]](https://i-blog.csdnimg.cn/blog_migrate/abf0867911d4d0fc485726f6e3813ed0.png)
commandName属性的值,可以是下面几个:
- IIS Express
- IIS
- Project
CommandName属性的值,以及项目文件中的AspNetCoreHostingModel 节点的值,将会决定应用程序使用的是内部服务器,还是外部服务器(也叫反向代理服务器)。请看下面的表格。

修改Program.cs类中的Configure方法
修改Configure方法,以便在浏览器中显示程序运行的时候的工作进程:

案例一:
具体的看上面的那张图即可
当我们使用**Project**作为命令行属性的值的时候,ASP.NET Core是会忽略AspNetCoreHostingModel节点中的值的。然后Kestrel服务器就是唯一的服务器来托管运行程序了,以及处理HTTP请求。我们如下操作:选择【MvcMovie】

然后运行应用程序:

任务管理器中可以看到:使用的主机是ApplicationFrameHost.exe

现在改变一下项目文件,在里面添加:InProcess

运行的结果还是一样,这是因为: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项目中launchSettings.json文件的作用及配置方法。它主要用于本地开发环境,包括不同命令名的选择及其对服务器配置的影响。

792

被折叠的 条评论
为什么被折叠?



