文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

ASP.NETCore基础之启动设置

2024-04-02 19:55

关注

这一章,我们了解一下launchSettings.json的作用。

打开launchSettings.json 文件后,默认情况下,您将找到以下代码。

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:1118",
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "WebApplication4": {
      "commandName": "Project",
      "dotnetRunMessages": "true",
      "launchBrowser": true,
      "applicationUrl": "http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

在这里,您可以看到,我们有两个部分。 一种用于IIS Express(IIS服务器),另一种用于Kestrel服务器。

在Visual Studio中,您可以找到上述两个配置文件(IIS Express和WebApplication4),如下所示。

如果选择 IIS Express,则它将使用 IIS 服务器,如果您选择 WebApplication4 应用程序,则它将使用 Kestrel 服务器。

launchSettings.json文件的 commandName 属性的值可以是以下任何一个:

launchSettings.json文件的commandName属性值以及应用程序项目文件中的AspNetCoreHostingModel元素值将确定将要使用和处理传入HTTP请求的内部和外部Web服务器(反向代理服务器)。 为了更好地理解,请看下图。

如何验证其工作模式?

方法1:

当我们在launchSettings.json文件中将CommandName用作Project时,ASP.NET Core将忽略AspNetCoreHostingModel值。 Kestrel是唯一将托管应用程序并处理传入请求的服务器。 让我们证明这一点。 现在,我们需要将启动Profile设置为WebApplication4,如下所示。

如果查看launchSettings.json文件,那么您将看到WebApplication4配置文件使用"commandName":"Project"值,并且请注意下面所示的应用程序URL。

在我的应用程序中,URL为http://localhost:5000,端口号在您的示例中可能有所不同。

"WebApplication4": {
      "commandName": "Project",
      "dotnetRunMessages": "true",
      "launchBrowser": true,
      "applicationUrl": "http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }

现在,将应用程序项目文件中的AspNetCoreHostingModel元素值更改为InProcess,如下所示。

<Project Sdk="Microsoft.NET.Sdk.Web">
	<PropertyGroup>
		<TargetFramework>net5.0</TargetFramework>
		<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
	</PropertyGroup>
</Project>

然后, 启动该项目, 可以看到首先启动了CMD,在这种情况下将使用kestrel服务器托管应用程序。

注: 因为当CommandName值为Project时,它将忽略AspNetCoreHostingModel值,而Kestrel是唯一将托管和处理传入请求的服务器。

方法2:

如果我们使用命令名作为 IISExpress 配置文件,如果我们将 AspNetCoreHostingModel 值设置为 OutOfProcess,则ASP.NET Core使用IIS Express作为外部 Web 服务器,Kestrel 是内部 Web 服务器。外部 Web 服务器(即 IIS Express)将接收传入的 HTTP 请求,然后将请求转发到内部 Web 服务器,即将处理请求的 Kestrel。让我们证明这一点。

由于我们已经将启动配置文件设置为 IIS Express,我们只需要将 AspNetCoreHostingModel 元素值更改为应用程序的项目文件中的 OutOfProcess,如下所示。

<Project Sdk="Microsoft.NET.Sdk.Web">
	<PropertyGroup>
		<TargetFramework>net5.0</TargetFramework>
		<AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
	</PropertyGroup>
</Project>

运行应用程序,浏览器输出了项目名称, 如下所示, 因为请求由Kestrel Web Server服务器处理。

注: 通过运行时,输出当前进程名称即可。

到此这篇关于ASP.NET Core基础之启动设置的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯