广告
返回顶部
首页 > 资讯 > 后端开发 > ASP.NET >ASP.NETCore中的环境配置
  • 404
分享到

ASP.NETCore中的环境配置

2024-04-02 19:04:59 404人浏览 八月长安
摘要

1.环境变量配置 ASP.net core在应用程序启动时读取环境变量(Properties\launchSettings.JSON)ASPnetcore_ENVIRONMENT,并

1.环境变量配置

ASP.net core在应用程序启动时读取环境变量(Properties\launchSettings.JSON)ASPnetcore_ENVIRONMENT,并将该值存储在IHostingEnvironment.EnvironmentName中。ASPNETCORE_ENVIRONMENT可设置为任意值,但框架只支持三个值:Development(开发)、Staging (分阶段)和 Production(生产)。如果未设置ASPNETCORE_ENVIRONMENT,则默认为 Production。

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    if (env.IsProduction() || env.IsStaging() || env.IsEnvironment("Staging_2"))
    {
        app.UseExceptionHandler("/Error");
    }
}

Properties/launchSettings.json里面的配置如下:

  • 当ASPNETCORE_ENVIRONMENT设置为Development时,调用UseDeveloperExceptionPage。
  • 当ASPNETCORE_ENVIRONMENT设置为Staging、Production时,调用UseExceptionHandler。

2.开发环境配置

开发环境可以启用不应该在生产中公开的功能。例如,只在开发环境中启用了开发人员异常页。本地计算机开发环境可以在项目的Properties\launchSettings.json文件中设置。在 launchSettings.json中设置的环境值替代在系统环境中设置的值。以下 launchSettings.json 文件中显示的三个配置文件:

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "Http://localhost:54339/",
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_My_Environment": "1",
        "ASPNETCORE_DETaiLEDERRORS": "1",
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "EnvironmentsSample": {
      "commandName": "Project",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Production"
      },
      "applicationUrl": "http://localhost:54340;http://localhost:54341"
    },
    "Kestrel Staging": {
      "commandName": "Project",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_My_Environment": "1",
        "ASPNETCORE_DETAILEDERRORS": "1",
        "ASPNETCORE_ENVIRONMENT": "Staging"
      },
      "applicationUrl": "http://localhost:51997/"
    }
  }
}

使用dotnet run启动应用时,会使用具有"commandName": "IISExpress"的第一个配置文件。commandName的值是指定要启动的WEB服务器。而launchSettings.json中的applicationUrl属性也可指定服务器URL的列表。 在列表中的URL之间使用分号,如上述环境配置中EnvironmentsSample里面的applicationUrl属性值配置。Visual Studio项目属性“调试”选项卡中也提供了GUI来编辑launchSettings.json文件:

在Web服务器重新启动之前,对项目配置文件所做的更改可能不会生效。必须重新启动 Kestrel才能检测到对环境配置所做的更改。
现在我们来验证开发环境中启用了开发人员异常页示例,首先调试启动第一个配置文件(IISExpress):

3.生产环境配置

Production环境应配置为最大限度地提高安全性、性能和应用可靠性。不同于开发的一些通用设置包括:

  • 缓存
  • 客户端资源被捆绑和缩小,并可能从CDN(网络分发)提供。
  • 已禁用诊断错误页。
  • 已启用友好错误页。
  • 已启用生产记录和监视。例如,Application Insights。

现在我们来验证生产环境中启用了友好错误页示例,首先调试启动第二个配置文件(EnvironmentsSample):

4.基于环境配置的Startup类和方法

当ASP.net core应用程序启动时,应用程序可以为不同的环境单独定义Startup类(例如,StartupDevelopment),对应Startup类会在运行时进行选择环境配置。优先考虑名称后缀与当前环境相匹配的Startup类。如果找不到匹配的Startup{EnvironmentName},就会使用原始的Startup类。若要实现基于环境的Startup类,请为使用中的每个环境创建Startup{EnvironmentName} 类:

public class StartupDevelopment
{
    public void ConfigureServices(IServiceCollection services)
    {
    }
    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
    }
}
public class StartupProduction
{
    public void ConfigureServices(IServiceCollection services)
    {
    }
    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
    }
}

使用接受程序集名称的UseStartup(IWebHostBuilder, String) 进行重载:

public class Program
{
    public static void Main(string[] args)
    {
        CreateWebHostBuilder(args).Build().Run();
    }
    public static IWebHostBuilder CreateWebHostBuilder(string[] args)
    {
        var assemblyName = typeof(Startup).GetTypeInfo().Assembly.FullName;
        return WebHost.CreateDefaultBuilder(args)
            .UseStartup(assemblyName);
    }
}

通过调试启动第二个配置文件(EnvironmentsSample)看看效果:

因为调试启动第二个配置文件(EnvironmentsSample)的生产(Production)环境,所以Startup类会在运行选择时会针对当前环境配置找到对应Startup类并加载。

到此这篇关于ASP.Net Core环境配置的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: ASP.NETCore中的环境配置

本文链接: https://www.lsjlt.com/news/145188.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • ASP.NETCore中的环境配置
    1.环境变量配置 ASP.NET Core在应用程序启动时读取环境变量(Properties\launchSettings.json)ASPNETCORE_ENVIRONMENT,并...
    99+
    2022-11-13
  • ASP.NETCore环境变量配置和启动设置讲解
    ASPNETCORE_ENVIRONMENT ASP.NET Core控制环境切换最核心的东西是“ASPNETCORE_ENVIRONMENT”环境变量,它直...
    99+
    2022-11-13
  • ASP.NETCore中使用多环境
    ASP.NET Core 支持在多个环境中管理应用程序,如开发(Development),预演(Staging)和生产(Production)。环境变量用来指示应用程序正在运行的环境...
    99+
    2022-11-13
  • Hadoop环境配置中的hive环境配置是怎么样的
    这篇文章给大家介绍Hadoop环境配置中的hive环境配置是怎么样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。将下载的hive压缩包拉到/opt/software/文件夹下安装包版本:apache-hive-3.1...
    99+
    2023-06-25
  • Hadoop环境配置之hive环境配置详解
    1、将下载的hive压缩包拉到/opt/software/文件夹下 安装包版本:apache-hive-3.1.2-bin.tar.gz 2、将安装包解压到/opt/module/...
    99+
    2022-11-12
  • android中gradle的环境配置
    本文主要解决两个问题: 1,当前项目./gradlew的配置问题 2,全局统一gradle的配置问题 一、当前项目./gradlew的配置问题 我们做rn跨平台开发的时候经常会遇见这个问题 : react-native在mac上执行...
    99+
    2022-06-06
    环境 gradle Android
  • JAVA环境配置
    下载JDK 注意:可能java对中文支持的原因,最好java环境和程序使用的路径中不要包含中文 搜索jdk在其官网中下载其需要的版本,本文以java8和java15为例。 进入腾讯软件中心【软件分类列表】-腾讯软件中心官网 (qq.c...
    99+
    2023-10-24
    java Powered by 金山文档
  • python环境配置
    selenium 自动化测试环境配置。第一步、安装python 的开发环境包,选择需要安装路径进行安装,笔者下载的是目前最新的python2.7.5版本,安装目录为:C:\Python27。第二步、安装setuptools 通过前面提供的s...
    99+
    2023-01-31
    环境 python
  • PHP环境配置
    文章目录 安装前的准备安装 ApachePHP 安装MySQL 的安装phpMyAdmin 配置 安装前的准备 查看本机的类型(x86/x64, 即 32 位还是 64 位)安装好 V...
    99+
    2023-09-10
    php apache 开发语言
  • Android环境配置
    1. JDK安装 这里我就不详细写了,有需要戳这里 2. AndroidStudio安装(确保在安装 Android Studio 之前,已经安...
    99+
    2022-06-06
    Android
  • Django环境配置
    虚拟机创建项目 pycharm创建项目 开启项目     1.  创建虚拟环境     workon    查看虚拟环境         mkvirtualenv -p /usr/bin/python3.5 envname   ...
    99+
    2023-01-30
    环境 Django
  • conda环境配置
    新租了服务器,想做个简单的服务端,测试以下网络质量。刚开始打算用npm的http-server做一个,无奈出问题了。后来还是觉得干脆装个django npm和nodejs的安装 npm可以通过apt-get install安装,nodej...
    99+
    2023-01-31
    环境 conda
  • adb环境配置
    adb环境配置 1.下载工具包 工具包:platform-tools_r30.0.4-windows.zip 获取途径1:链接: https://pan.baidu.com/s/17BiARFlgsQa2wDETmoJIvQpwd=dsd2...
    99+
    2023-08-19
    adb android
  • Flutter 环境配置
    Flutter 环境配置 电脑上面安装配置JDK 1.下载安装JDK 下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk...
    99+
    2023-09-01
    flutter android android studio
  • oracle的环境配置-基本配置
    宿主机IP地址:10.1.1.x  网关:10.1.1.1虚拟机节点IP地址(本地workstation上创建):10.1.1.101~253  网关:10.1.1.1教师机(VNC):...
    99+
    2022-10-18
  • 在Pycharm中配置conda的环境
    首先你要提前安装好Pycharm和Anaconda在电脑上 首先你要提前安装好Pycharm和Anaconda在电脑上,Anaconda在安装时会配置好一个python环境和带上很多python的第三方库,可以利用conda自带的pytho...
    99+
    2023-09-05
    pycharm conda ide
  • 生产环境postgresql主从环境配置
    主从服务器IP:192.168.11.131 postgreSQL master192.168.11.132 postgreSQL slave服务器系统版本:# cat /etc/redhat-releas...
    99+
    2022-10-18
  • java 1.6 环境配置
    要配置Java 1.6环境,您需要按照以下步骤进行操作:1. 下载Java Development Kit (JDK) 1.6:您可...
    99+
    2023-09-15
    Java
  • OpenGL:VisualStudio2022配置OpenGL环境
    OpenGL撸了有一段时间了,一直没空好好捋一捋总结一下,尤其是OpenGL的环境配置,换个开发环境就要重新配一遍,其实也没多复杂,就是繁琐了点,做个说明文档方便以后配置。 一.安装VisualStudio2022 这个不需要多讲解了,微软...
    99+
    2023-09-15
    visual studio 图像处理 图形渲染 android
  • ubuntu20.04配置php环境
    一、安装 PHP 7.4,配合 Apache 如果你正在使用 Apache 作为你的网络服务器,运行下面的命令来安装 PHP 和 Apache PHP 模块: sudo apt update sudo apt install php lib...
    99+
    2023-09-05
    php apache 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作