【问题标题】:Unable to change environment variable无法更改环境变量
【发布时间】:2019-02-21 14:11:07
【问题描述】:

我在更改 web.config 中的发布变量时遇到了问题,因为它没有任何意义。

一旦我将web.config中的变量设置为Development,例如,当我启动应用程序时,它仍然说环境变量是Production

如下所示,web.config 声明我已将变量设置为 Development

我没有想法,真的不确定是否可以再以这种方式设置变量。

【问题讨论】:

    标签: asp.net-core publish asp.net-core-2.1


    【解决方案1】:

    查看您的第一个屏幕截图,您似乎正在从命令行运行您的应用程序,可能使用dotnet run。在这种情况下,您应该注意 web.config 被完全忽略。

    web.config 仅用于在您实际在 IIS 上部署应用程序时配置 IIS。如果您以任何其他方式运行它,web.config 将不会被使用,您将不得不以不同的方式配置环境。

    如果你想从命令行运行应用程序,你可以使用set设置环境变量:

    set ASPNETCORE_ENVIRONMENT=Development
    dotnet run
    

    如果您使用标准 ASP.NET Core 模板,还应该有一个配置默认启动设置的 launchSettings.json 文件。如果您在那里指定环境,dotnet run 将在您从应用程序的根目录运行应用程序时自动选择它。

    【讨论】:

    • 非常感谢您的回答。不过,我还有另一个问题。例如,如果我将应用程序部署在 Plesk 等服务而不是 IIS 上,是否可以将环境变量从 Production 更改为那里的其他内容?
    • 这主要取决于操作系统和托管进程。但是,是的,只要您在进程开始时设置环境变量,就可以了。在 Linux 中,这通常看起来像这样:ASPNETCORE_ENVIRONMENT=Development dotnet YourApp.dll - 如果你把它放在你的启动脚本中,那么它会正常工作。
    • 如果你使用system.d之类的东西来启动应用程序,你也可以在服务定义中指定进程环境变量。参见例如this chapter in the documentation
    • 感谢各位的帮助。
    猜你喜欢
    • 2015-10-03
    • 1970-01-01
    • 2014-04-15
    • 2013-07-05
    • 1970-01-01
    • 1970-01-01
    • 2021-07-25
    • 2012-04-19
    • 2015-08-05
    相关资源
    最近更新 更多