【问题标题】:ASP.Net Core 2.1 ASPNETCORE_ENVIRONMENT value not reflectingASP.Net Core 2.1 ASPNETCORE_ENVIRONMENT 值未反映
【发布时间】:2019-09-12 13:00:01
【问题描述】:

我有ASP.Net Core 2.1 API 应用程序。它应该在 4 个环境中托管。

  1. 发展
  2. 测试
  3. 分期
  4. 生产

当从 Visual Studio 在本地运行应用程序时,应用程序正确地获取 ASPNETCORE_ENVIRONMENT 变量并相应地从 appsettings.Development.json 获取值

但是当相同的部署在虚拟机中时,它不会从 appsettings.json 获取环境并寻找设置(如连接字符串等)。

我还需要进行哪些设置?

谢谢!

【问题讨论】:

  • @cleftheris 谢谢!根据上面的链接,我在 launchsettings.json jsoneditoronline.org/?id=da032fc0d3ef4fc9a1d75bc88b1f7c18 中添加了以下设置
  • @cleftheris 但添加后,它会抛出运行时错误 500 - 请求的地址在其上下文中无效
  • launchSettings.json 仅由 dotnet run 使用(即在 Visual Studio 中),它对于部署到 IIS 是无用的。
  • @Kgn-web 您应该检查上面文档中名为“set-the-environment”的部分。假设您根据文档在 Windows 上运行,您也可以。 A. 通过系统设置设置一个windows全局环境变量。 B、通过web.config设置环境变量。 B 选项更简单。

标签: c# asp.net-core environment-variables asp.net-core-2.1 windows-server-2012


【解决方案1】:

您应该设置系统环境变量而不是用户变量。

【讨论】:

  • 作为更多上下文,您正在为 your 用户配置文件添加环境变量,即您登录到机器的用户配置文件。那几乎肯定不是 IIS 中的应用程序池运行的同一用户。因此,它无法访问您的用户配置文件中设置的任何环境变量。您可以添加用户变量,但必须在运行应用程序池的用户上完成。否则,所有用户都可以访问系统变量。
  • @ChrisPratt,您能检查一下 cmets 中提到的错误吗?谢谢!
猜你喜欢
  • 2019-08-13
  • 2019-06-17
  • 2019-04-11
  • 1970-01-01
  • 1970-01-01
  • 2022-07-26
  • 2018-12-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多