Asp.net core mvc 发布MVC 6 Web应用程序时设置环境

Asp.net core mvc 发布MVC 6 Web应用程序时设置环境,asp.net-core-mvc,Asp.net Core Mvc,我正在测试dotnetcore的开发,并准备部署我的应用程序。现在,我已经在本地PC上发布了一个简单的文件,然后将文件复制到远程服务器上 当我查看该网站时,我可以看到它正在登台或生产环境中运行,因为我正在使用缩小的文件(在视图中指定) 但是,我很难找到任何文档来说明在发布时在何处或如何指定此环境。即使我现在必须直接编辑这个设置,也没关系,但我似乎找不到它 我在发布后检查的文件(也包括源文件,因为我刚刚通过VS2015发布了DNU命令行) wwwroot/web.config approt/we

我正在测试dotnetcore的开发,并准备部署我的应用程序。现在,我已经在本地PC上发布了一个简单的文件,然后将文件复制到远程服务器上

当我查看该网站时,我可以看到它正在登台或生产环境中运行,因为我正在使用缩小的文件(在视图中指定)

但是,我很难找到任何文档来说明在发布时在何处或如何指定此环境。即使我现在必须直接编辑这个设置,也没关系,但我似乎找不到它

我在发布后检查的文件(也包括源文件,因为我刚刚通过VS2015发布了DNU命令行)

  • wwwroot/web.config
  • approt/web.cmd
  • approt/global.json
  • approt/src/myproject/project.json
  • approt/src/myproject/hosting.json
  • approt/src/myproject/project.json
  • approt/src/myproject/Properties/launchSettings.json

嗯,那真是有点有趣。但这里有一个Windows机器的答案

这个变量是系统范围的环境变量,如果在同一台机器上有两个不同的配置(例如,我们在同一台机器上为不同的团队提供了Test1、Test2、Test3等),我不确定这将如何运行,尽管我想如果您达到这个规模,您可能正在使用Chef/Puppet之类的工具来存储配置

如何在系统范围内设置变量

  • 右键单击“我的电脑”、“这台电脑”、“我的电脑”或您使用的任何windows的变体。选择属性
  • 点击高级系统设置(在Win10上,此选项位于左侧)
  • 单击下一窗口底部的环境变量
  • 单击“系统变量”上的“新建…”。然后在“ASPNET_ENV”中输入指定的环境,如下所示
  • 现在重置IIS,您应该可以开始了 我看到其他人建议“Hosting:Environment”是新的变量名,但这对我不起作用,也许它对你也会起作用!我可以在launchSettings.json中看到它使用了hosting变量,但是当我把它放在机器范围内时,它对我不起作用。我想这就是摆弄候选版本的乐趣吧!:)

    还有一件事需要注意。从Visual Studio启动时,它运行的环境保存在/Properties/launchSettings.json中

    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "Hosting:Environment": "Development"
      }
    }
    
    您可以在此处编辑Hosting:Environment变量,以便在其他环境中自动启动


    但是,当您从常规IIS运行时,默认值始终为“生产”(看不出会出错……)

    通常,我认为这个设置是在进程的shell上进行的,或者是在用户或机器级别进行的。您可以在Windows()中检查环境变量。它应该在那里。否则,请检查可能也包含它的启动脚本。如果你部署在Azure上,它很可能已经在部署时为你处理好了。让我走上正确的轨道。下面回答了我为其他在这个问题上结结巴巴的人所做的一切:)MSFT文档:我如何在IIS中为每个站点而不是全球做到这一点?我见过的每个解决方案都说“使用Docker”,这对我们这些可能在一个盒子上有多个QA“站点”的人来说真的很糟糕,因为他们做的不多。不幸的是,我只能告诉你这么多了。我很久很久以前(大约一年前)就写了这个答案,所以事情可能已经改变了。Docker不是一个选项,我试图在这里开始讨论:使用ASPNETCORE_环境,如文档中所示: