代码之家  ›  专栏  ›  技术社区  ›  opensas

dotnet core忽略aspnetcore_环境变量

  •  4
  • opensas  · 技术社区  · 6 年前

    我用dotnet核心创建了一个简单的webapi项目。

    我正在尝试使用aspnetcore_环境系统变量设置运行环境。

    C:\devel\apps\webapi>set ASPNETCORE_ENVIRONMENT=Production
    
    C:\devel\apps\webapi>echo %ASPNETCORE_ENVIRONMENT%
    Production
    
    C:\devel\apps\webapi>dotnet run
    Using launch settings from C:\devel\apps\webapi\Properties\launchSettings.json...
    info: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[0]
          User profile is available. Using 'C:\Users\SSCARANO\AppData\Local\ASP.NET\DataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest.
    Hosting environment: Development
    Content root path: C:\devel\apps\webapi
    Now listening on: https://localhost:5001
    Now listening on: http://localhost:5000
    Application started. Press Ctrl+C to shut down.
    

    我尝试打开一个不同的控制台,并将其设置为以管理员身份登录,但应用程序始终在开发模式下运行。

    我看到了这个( https://stackoverflow.com/a/40102470/47633 )相关问题,但我没有使用IIS

    2 回复  |  直到 6 年前
        1
  •  2
  •   Mickaël Derriey    6 年前

    我怀疑你遇到的问题是 ASPNETCORE_ENVIRONMENT 变量定义在 C:\devel\apps\webapi\Properties\launchSettings.json 文件。

    dotnet run 工作是它加载这个文件并找到第一个配置文件 commandName project ,并使用它来运行应用程序。如果您没有对该文件进行任何更改,很有可能 environmentVariables 该配置文件的部分包含 AspNetCore_环境 变量集 Development .

    如果要在中运行应用程序,您有两个选项 Production 模式:

    • 更改现有配置文件并将变量设置为 生产 ,表示每次执行 网络游戏 将以生产模式运行应用程序;或
    • 添加一个新的配置文件,其中 AspNetCore_环境 变量设置为 生产 . 然后,如果执行 dotnet run --launch-profile <name-of-your-new-profile>
        2
  •  2
  •   DavidG    6 年前

    问题是您如何设置环境变量。在命令行中,您不需要引号,因此您应该使用:

    C:\> set ASPNETCORE_ENVIRONMENT=Production
    
    C:\> echo %ASPNETCORE_ENVIRONMENT%
    Production