asp打开exe执行本地程序._在ASP.NET Core中配置文件launchSettings.json的使用方法

这篇文章,我将带领大家学习ASP.NET Core中的launchSettings.json文件。为了学习它,我们打开之前建的空白模板的ASP.NET Core项目。

8b902d7bf216595392387a8d46e32b9a.png

从上面的图片中你可以看到,我们项目的属性中有一个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文件,就会看到了这些配置信息:

b709f377709ec3290af82dad83ae60fe.png

在上面的图片中,你可以看到profiles有两个部分,一个是IIS Express,还有一个是EmptyTemplateCoreApp.

你需要记住的是:当你按CTRL+F5或者直接按F5,运行程序的时候,那么profiles中的”commandName”: “IIS Express”就会被使用。与此同时,当你使用.NET Core CLI运行ASP.NET Core应用程序的时候,那么profile中的“commandName”:”Project”这段配置就会被使用。

然而,当你想要选择哪个配置文件将会被使用,可以选择Visual Studio中的这个下拉框选项:

613b29bef41a3af68ce4e93d1ef71baf.png

commandName属性的值,可以是下面几个:

  1. IIS Express
  2. IIS
  3. Project

CommandName属性的值,以及项目文件中的AspNetCoreHostingModel 节点的值,将会决定应用程序使用的是内部服务器,还是外部服务器(也叫反向代理服务器)。请看下面的表格。

43ded115dbc9b3bcfbb75d90e1cc47e3.png

修改Startup类中的Configure方法

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

aaca9012bb0e83b9d1225e8a24cd7ff8.png

案例一:

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

4f059aebed8ed65c461221298104b0e7.png

然后运行应用程序:

2245dbb9bc934cbc2f32df7071afa2fd.png

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

29a8866ddcd25b82b036556467921078.png

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

b786596488d9941c45acf20aadd9c16f.png

运行的结果还是一样,这是因为:CommandName的属性是Project,然后就会忽略AspNetCoreHostingModel节点的配置,这个时候,Kestrel是唯一的服务器,来托管程序,并处理HTTP请求。这也就验证了表格中的第一条

案例二:

CommandName选择IIS Express,并且AspNetCoreHostingModel选择InProcess,那么IIS Express将会是唯一的服务器,来托管程序,处理HTTP请求了。

32f979b46e80d9a760eb9058e57addb1.png

运行程序:可以看到这时候,进程名称就是iisexpres了。

a3cc71392d66f1248d45dc8ddddedd92.png

案例三:

ComandName选择IIS Express ,AspNetCoreHostingModel选择OutOfProcess.这个时候,ASP.NET Core使用IIS Express作为外部服务器,Kestrel服务器作为内部服务器。外部服务器IIS Express将会接收HTTP请求,然后传递给内部服务器来处理。我们来验证一下:

7022b97e113606d5a4072edcd7e3710e.png

运行程序:

4a242c03cf6de58ed255046375798f80.png
2c877714c0d646eef8c2bf10733b1ccf.png

怎样在Visual Studio 中使用图形用户界面来获取设置CommandName?

右键项目--选址属性,然后找到Debug,就看到了:

2450c9e94da2b361dad4e29b971ac458.png

使用图形界面,我们同样可以改变launchSettings.json中的设置。这里你可以看到环境变量“ASPNETCORE_ENVIRONMENT”的值是”Development”,当你运行项目的时候,你可以改变成“Staging”或者“Production”,当然你还可以自己添加环境变量。并且你还可以根据环境变量做一些事情,例如:

097c622f0008984c6137c7d5b4c60959.png

上面的图片中,将会检查是否是开发环境,如果是,就执行开发环境下的异常页面。在后面的文章中,将会讲到更多的环境变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值