zoukankan      html  css  js  c++  java
  • Startup在不同环境中的处理

    ASP.NET Core引进了在多种环境中对控制应用程序行为的进一步支持,例如开发环境(Development Environment)、预发布环境(Staging Environment),和生产环境(Production Environment)。环境变量(ASPNETCORE_ENVIRONMENT)被用来指示程序在哪个环境中运行,允许程序被正确的配置。

    一、运行环境

    开发环境(Development):当开发程序时使用。

    预发布环境(Staging):按照惯例,Staging环境是预生产环境,用于发布到产品环境前的最终测试。

    产品环境(Production):是正在运行并被终端用户使用的环境。这个环境应该配置成最大程度的安全、高效和鲁棒性。

    二、环境变量(ASPNETCORE_ENVIRONMENT

    ASP.NET Core使用一个特殊的环境变量——ASPNETCORE_ENVIRONMEN来描述应用程序当前运行的环境。这个变量可以设置成你任何喜欢的值,但约定俗成使用这三个值:DevelopmentStagingProduction。你将在ASP.NET Core提供的样例和模版中找到这些值。

    WindowsmacOS中,环境变量名是大小写不敏感的。不管你是把它设置成Development,或者是development,或者是DEVELOPMENT,结果都一样。然而在默认情况下,Linux是大小写敏感的。出于最佳实践的考虑,环境变量、文件名和设置(Setting)应该假定为大小写敏感。

    三、设置环境变量

    关于在不同环境时,如何设置环境变量,可参考微软的官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/environments#setting-the-environment

    在开发时,我们可以在Visual Studio的设置页中直接修改环境变量(如下图所示),不需要修改系统中的设置。

    这个属性页中的设置会被持久化存储到launchSettings.json这个文件中。这个文件位于项目的Properties文件夹下面。

    四、根据不同的环境加载不同的Startup

    在上篇中提到程序的主方法中使用到UseStartup<TStartup>()这个方法。这个方法有多个重载,除了可以加载指定的Startup类外,还可以在指定的程序集中根据当前程序运行环境搜索特定的Startup类。搜索规则为寻找名字为"Startup{EnvironmentName}"。例如,当前程序在开发环境中运行时,这个方法就会在你指定的程序集中查找名为"StartupDevelopment"的类。

    ASP.NET Core还支持这样的情况:当你在使用UseStartup<TStartup>()指定了一个固定的Startup类后,它还可以根据当前程序运行环境,加载Startup类中以这种格式 "Configure{EnvironmentName}"命名的方法。举个例子,如果程序当前的执行环境是Staging环境,就会调用在Startup类中的ConfigureStaging方法,而不再调用Configure方法。

    五、总结

    Startup的使用比较灵活,可以把开发、测试、生产独立的环境独立开来,可以在实际中运用起来。

    六、参考

    https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/environments

  • 相关阅读:
    inet_ntoa解析
    日语常用计算机词汇
    Visual Studio 2012 : error LNK2026: module unsafe for SAFESEH image
    android异常总结四 :Unexpected text found in layout file: """
    android异常总结三 :R文件丢失
    android异常总结二 :This text field does not specify an inputType or a hint
    android异常总结一 :reslayoutOtherActivity.xml: Invalid file name: must contain only [a-z0-9_.]
    Win8下配置java环境
    CUDA实例练习(五):两数相加
    CUDA实例练习(四):矩阵转置
  • 原文地址:https://www.cnblogs.com/liszt/p/6405157.html
Copyright © 2011-2022 走看看