【问题标题】:set ASPNETCORE_ENVIRONMENT does not seem to be working设置 ASPNETCORE_ENVIRONMENT 似乎不起作用
【发布时间】:2018-03-03 13:33:36
【问题描述】:

我按照书籍示例构建了一个名为 Sportstore 的应用程序(Adam Freeman 的 Pro ASP.Net Core MVC)。

现在我在部署章节,他部署到 Azure。 我已经在 Azure 上创建了数据库,打开了防火墙并使用 Visual Studio 打开了一个数据库,因此我可以通过 Visual Studio 2017 SQL 对象资源管理器查看 Azure DB。很酷。

我有一个带有 Azure 连接字符串的 appsettings.production.json 文件。

所以作者让我们打开一个命令提示符。他还显示了 powershell 命令,但我只是进入了命令提示符。

我输入:

set ASPNETCORE_ENVIRONMENT=PRODUCTION

我在这里没有收到错误消息,但也没有得到任何确认。我相信如果它有效,我会在这里收到某种类型的消息。

然后我输入:

dotnet ef database update --context ApplicationDbContext

现在我收到了消息:

未应用任何迁移。数据库已经是最新的了。

这告诉我它仍然认为它正在开发中。

有没有命令可以检查它在什么环境?

我知道你可以设置系统环境并重新启动。但这似乎您不必重新启动。

此命令是否与转到 Windows 环境变量对话框并在那里进行更改相同。我知道你必须重启。

【问题讨论】:

  • 所以应该有 appconfig.json 甚至可能有 appconfig.development.json(嵌套),我认为“发布版本”中的 appconfig.json 将针对正确的数据库。调试构建以开发文件为目标。几乎任何时候你发布它都会是一个发布版本。环境将根据发布/调试从开发更改为生产。你是用什么平台开发的?
  • 您可以通过在末尾添加 -verbose 来检查它设置的环境。我遇到了类似的问题,最终使用了这个人的答案:stackoverflow.com/a/49078101/522859

标签: deployment environment-variables asp.net-core-mvc


【解决方案1】:

是的,这会将环境变量 ASPNETCORE_ENVIRONMENT 设置为 PRODUCTION。运行一下就可以看到设置了哪些环境变量

set

在命令提示符下。你会得到如下输出:

C:\Users\username>set
ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\username\AppData\Roaming
ASPNETCORE_ENVIRONMENT=DEVELOPMENT
CommonProgramFiles=C:\Program Files\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
CommonProgramW6432=C:\Program Files\Common Files
COMPUTERNAME=mycomputername
ComSpec=C:\WINDOWS\system32\cmd.exe
...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-19
    • 2019-06-19
    • 2015-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-11
    • 1970-01-01
    相关资源
    最近更新 更多