【发布时间】: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