gpt4 book ai didi

c# - 为什么我的 ASP.NET 部署服务器不使用配置的环境名称?

转载 作者:行者123 更新时间:2023-11-30 21:37:44 25 4
gpt4 key购买 nike

我已将 ASP.NET 网络应用程序部署到我们用于 UAT 的测试服务器。我使用以下 Powershell 命令将 ASP.NET Core 环境名称设置为“UAT”...

$Env:ASPNETCORE_ENVIRONMENT = "UAT"

...并使用...确认此设置

Get-ChildItem Env:

但是,当我运行应用程序时,我可以在 Startup 中看到 IHostingEnvironment.EnvironmentName 属性返回“Production”。为什么会这样?

最佳答案

由于您将整个服务器用于 UAT,因此在机器级别设置该环境变量是有意义的。您当前的 powershell 命令仅为当前进程设置它,因此只有当您从同一个 powershell 控制台运行您的应用程序时它才会起作用(并且在您关闭它时将丢失)。你可以在机器级别设置它,例如使用这个 powershell 命令(你需要运行提升的控制台,在管理员下,才能工作):

[Environment]::SetEnvironmentVariable("ASPNETCORE_ENVIRONMENT", "UAT", "Machine")

您可以将它设置为任何值,而不是“预定义”值,如生产、登台、开发。

请注意,所有用户\机器级别的环境变量更改仅对新进程生效,不会更改已存在的进程。因此,如果您在 IIS 下运行 Web 应用程序 - 您需要重新启动 IIS 才能使其生效。如果您从 cmd\powershell 控制台运行它 - 您需要重新启动控制台,等等。

关于c# - 为什么我的 ASP.NET 部署服务器不使用配置的环境名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46950534/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com