ASP.NET Core基础系列(四)(启动配置)

本文解析了launchSetting.json配置中IISExpress、Project和ASPNetCoreHostingModel的区别,以及它们如何决定Web服务器类型,包括InProcess和OutOfProcess模式。重点讲解了VS中的启动选项和环境配置对Web应用部署的影响。
摘要由CSDN通过智能技术生成

一、launchSetting.json

打开launchSetting.json文件后,默认情况下,如下面代码所示:

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:55589",
      "sslPort": 44322
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "WebApplication1": {
      "commandName": "Project",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      },
      "applicationUrl": "https://localhost:5001;http://localhost:5000"
    }
  }
}

在profiles节点处有两个子节点:“IIS Express”和“WebApplication1”,这两个子节点分别对应VS中的两种启动方式。

在这里插入图片描述

值得一提的是,commandName 属性的值可以是以下三个中的任何一个:

  • IISExpress
  • IIS
  • Project

以下lunchSetting.json文件中包含多个配置文件

{
  "iisSettings": {
    "windowsAuthentication": false, 
    "anonymousAuthentication": true, 
    "iisExpress": {
      "applicationUrl": "http://localhost:64645",
      "sslPort": 44366
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "IISX-Production": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Production"
      }
    },
    "IISX-Staging": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Staging",
        "ASPNETCORE_DETAILEDERRORS": "1",
        "ASPNETCORE_SHUTDOWNTIMEOUTSECONDS": "3"
      }
    },
    "EnvironmentsSample": {
      "commandName": "Project",
      "launchBrowser": true,
      "applicationUrl": "https://localhost:5001;http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "KestrelStaging": {
      "commandName": "Project",
      "launchBrowser": true,
      "applicationUrl": "https://localhost:5001;http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Staging"
      }
    }
  }
}

二、AspNetCoreHostingModel

这个属性是项目文件(.csproj)中的一个节点。这个属性值只有两个:InProcess和OutOfProcess。

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
    <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
    <!--<AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>-->
  </PropertyGroup>

</Project>

默认条件下,项目文件中不会配置该属性,则默认为InProcess。

三、内部和外部服务器

上述两个配置决定了内部和外部Web服务器,具体如下:

CommandName(启动方式)AspNetCoreHostingModelInternal Web Server External Web Server
Porjectignore仅使用一台Web服务器–Kestrel
IIS ExpressInProcess仅使用一台Web服务器–IIS Express
IIS ExpressOutOfProcessKestrel IIS Express
IISInProcess仅使用一台Web服务器–IIS
IISOutOfProcessKestrel IIS
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值