【问题标题】:How to set ASP.NET 5 environment variables on production environment如何在生产环境中设置 ASP.NET 5 环境变量
【发布时间】:2015-08-30 22:39:33
【问题描述】:

在 Visual Studio 2015 中,您在项目属性中设置以下变量:ASPNET_ENV。如果将其设置为开发,则可以使用:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseErrorPage();
    }
 }

IsDevelopment 方法将检查 ASPNET_ENV 环境变量。现在,当您在 Visual Studio 2015 中进行开发时,这一切都很好。当您将 Web 应用程序发布到生产服务器上的 IIS 时,如何设置 ASPNET_ENV 的值?

我的服务器是 Windows Server 2012

【问题讨论】:

标签: environment-variables asp.net-core


【解决方案1】:

这是在Windows上设置环境变量的方法:

  1. 在您的服务器上,右键单击“计算机”或“我的电脑”,然后单击“属性”。
  2. 转到“高级系统设置”。
  3. 点击“高级”选项卡中的“环境变量”。
  4. 添加名称为ASPNET_ENV (RC1) 或ASPNETCORE_ENVIRONMENT(RC2、RTM 及以上)的新系统变量,其值为ProductionStagingDevelopment 或任何您想要的值。李>
  5. 可能需要重新启动您的网站。

有关如何从 gulpfile.js 读取环境变量,另请参阅 this 答案。

【讨论】:

  • 从 RC1 开始,环境变量已更改为 Hosting:Environment。
  • 重新启动以放置新的系统环境变量??这是真的吗?
  • @DonDon 我的意思是重新启动网站。我没有测试过。我已经更新了答案以澄清。
  • 必须重新启动机器才能使更改生效。
【解决方案2】:

如果您使用 IIS 来托管您的应用程序,可以像这样在 web.configfile 中设置环境变量:

<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false">
    <environmentVariables>
        <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="QA" />
        <environmentVariable name="AnotherVariable" value="My Value" />
    </environmentVariables>
</aspNetCore>

【讨论】:

  • 请更正markdown中的缩进,以便将结束标记(&lt;/aspNetCore&gt;)作为代码包含在内,并且environmentVariables小节很好地缩进。我会自己完成,但它不能算作允许编辑的足够字符。
猜你喜欢
  • 2020-04-29
  • 1970-01-01
  • 2017-08-31
  • 1970-01-01
  • 2018-07-09
  • 1970-01-01
  • 2014-09-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多