【问题标题】:How do I get my code to retrieve an environment variable on Linux (Ubuntu)?如何让我的代码在 Linux (Ubuntu) 上检索环境变量?
【发布时间】:2020-08-12 23:32:00
【问题描述】:

我在服务器上的 Ubuntu 上运行了一个 ASP.Net Core 应用程序(我在 Windows 上开发)。在一段代码中,我使用Environment.GetEnvironmentVariable("API_KEY"));。在 dev 中,密钥被成功检索。但是,当我将代码发布到服务器时,由于某种原因无法检索到密钥。 API_KEY 最终为空。

注意:在 dev 和 prod 上,ASP.NET Core 运行时都是相同的版本(5.0 预览版 7),是的,我在服务器上设置了环境变量,可以printenv 输出。当我将实际密钥插入应用程序而不是使用环境变量名称时,我的应用程序可以按我的意愿运行。

【问题讨论】:

    标签: asp.net-core environment-variables


    【解决方案1】:

    通常,您必须手动将该设置放入应用程序的“配置”部分。在本地机器上运行时,它将从local.settings.json 中提取,但在以Release 模式运行的服务器上,它将从服务器端配置中提取。该配置位于此处:

    这样做是因为您的本地环境应该运行与在服务器上实时运行的设置不同的(安全)设置。

    如果您不小心将代码提交到了一个 repo 并且 local.settings.json 随之而来,那么进入您的 repo 的人将无法获得关键数据。

    【讨论】:

    • 我没有使用配置文件来存储我的秘密。我正在使用环境变量,这些变量是在 Windows (Dev) 而不是 Ubuntu (Prod) 上检索的。
    猜你喜欢
    • 2019-03-23
    • 2011-12-26
    • 1970-01-01
    • 1970-01-01
    • 2020-02-28
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 2016-04-08
    相关资源
    最近更新 更多