ASP.NET Core基础之启动设置

 更新时间:2022年02月09日 10:01:52   作者:痕迹g  
这篇文章介绍了ASP.NET Core基础之启动设置,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

这一章,我们了解一下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 属性的值可以是以下任何一个:

  • IISExpress
  • IIS
  • Project

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基础之启动设置的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Asp.net请求处理之管道处理介绍

    Asp.net请求处理之管道处理介绍

    在了解Asp.net请求处理流程的过程中,个人认为有必要从源代码的角度来了解asp.net管道是怎么实现的,需要的朋友可以参考下
    2012-11-11
  • asp.net OleDbCommand 的用法

    asp.net OleDbCommand 的用法

    asp.net下OleDbCommand的使用代码
    2008-04-04
  • .NET6一些常用组件的配置及使用

    .NET6一些常用组件的配置及使用

    本文详细讲解了.NET6一些常用组件的配置及使用方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12
  • .Net行为型设计模式之状态模式(State)

    .Net行为型设计模式之状态模式(State)

    这篇文章介绍了.Net行为型设计模式之状态模式(State),文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • ASP.NET创建三层架构图解详细教程

    ASP.NET创建三层架构图解详细教程

    本文以图片的形式完整演示了创建三层架构的完整步骤,简单实用,希望能给大家一些帮助。
    2016-04-04
  • 搭建基础结构的ABP解决方案介绍

    搭建基础结构的ABP解决方案介绍

    这篇文章介绍了搭建基础结构的ABP解决方案的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • C#委托方法Func()中GetInvocationList()方法的用法介绍

    C#委托方法Func()中GetInvocationList()方法的用法介绍

    这篇文章介绍了C#委托方法Func()中GetInvocationList()方法的用法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-01-01
  • ASP.NET MVC项目部署方式介绍

    ASP.NET MVC项目部署方式介绍

    这篇文章介绍了ASP.NET MVC项目的部署方式,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • C#使用正则表达式实例

    C#使用正则表达式实例

    正则表达式(regular expression)是用来快速、高效地处理文本数据的工具。被处理的文本可以小到一个电子邮件地址,也可以大到一个多行文本输入框中的文本数据。正则表达式不仅可用来确认一段文本是否与一个预定义的模式相匹配,还可以用于从文本中抽取符合某一模式的数据。
    2008-04-04
  • .NET Core读取配置文件的方法

    .NET Core读取配置文件的方法

    这篇文章介绍了.NET Core读取配置文件的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2021-11-11

最新评论