首页 > 解决方案 > 是否可以从来自 webjob 的 webapp 获取环境变量

问题描述

我在读取环境变量时遇到问题。我在相同的解决方案下有 2 个项目。基本,当我来自网络作业时,我需要能够读取我的环境变量。

这两个项目是一个 asp.net-core-mvc 项目和一个 .net core 控制台项目。

我的控制台项目是一个“Webjob”,它引用了我的 Web 应用程序项目。

当我的“Webjob”运行时,它会在我的网络应用程序中找到一个方法。然后我尝试从我的网络应用程序中获取环境变量。它返回 null,因为它没有设置。

有什么方法可以运行它,这样当我来自网络作业时,我可以从我的网络应用程序中获取环境变量?

当我的网络应用程序单独运行时,我运行以获取变量的代码是

var env = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");

标签: c#.net-coreasp.net-core-mvc-2.1

解决方案


当您说“它在我的 Web 应用程序中遇到一个方法”时,我假设您的意思是您在 WebApp 项目中运行一个方法,而不是调用 WebAPI 端点。

问题是 VS 的调试配置仅适用于运行实际代码的项目,就像 web.config 或 app.config 可以在该特定项目的 bin/debug 文件夹中找到一样。这意味着在运行该项目时,您还需要在 WebJob 项目上设置环境变量。

但是:例如,在部署到 Azure 时,您通常会将两个项目托管在同一个应用服务中,它们共享配置,因此可以从相同的值中读取。


推荐阅读