如何在生产环境中设置 ASP.NET 5 环境变量
Posted
技术标签:
【中文标题】如何在生产环境中设置 ASP.NET 5 环境变量【英文标题】:How to set ASP.NET 5 environment variables on production environment 【发布时间】: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
【问题讨论】:
Asp.net 5 publish to IIS, setting ASPNET_ENV Variables 的可能重复项 看一下:docs.asp.net/en/latest/fundamentals/environments.html -- 特别要注意提示需要重启web服务器才能使该区域的更改生效。 @Amit 这不是因为他们给出的答案没有意义 @DavidTansey 文档中没有提到如何做到这一点?在哪里设置变量? 【参考方案1】:这是在Windows上设置环境变量的方法:
-
在您的服务器上,右键单击“计算机”或“我的电脑”,然后单击“属性”。
转到“高级系统设置”。
点击“高级”选项卡中的“环境变量”。
添加名称为
ASPNET_ENV
(RC1) 或ASPNETCORE_ENVIRONMENT
(RC2、RTM 及以上)的新系统变量,其值为Production
、Staging
、Development
或任何您想要的值。李>
可能需要重新启动您的网站。
有关如何从 gulpfile.js 读取环境变量,另请参阅 this 答案。
【讨论】:
从 RC1 开始,环境变量已更改为 Hosting:Environment。 @GradyWerner 见github.com/aspnet/Docs/issues/706#issuecomment-160450913 重新启动以放置新的系统环境变量??这是真的吗? @DonDon 我的意思是重新启动网站。我没有测试过。我已经更新了答案以澄清。 必须重新启动机器才能使更改生效。【参考方案2】:如果您使用 IIS 来托管您的应用程序,可以像这样在 web.config
file 中设置环境变量:
<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中的缩进,以便将结束标记(</aspNetCore>
)作为代码包含在内,并且environmentVariables
小节很好地缩进。我会自己完成,但它不能算作允许编辑的足够字符。以上是关于如何在生产环境中设置 ASP.NET 5 环境变量的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ASP.NET 5 Identity 中设置 PasswordHasherCompatibilityMode.IdentityV3?
用于替换 ASP.net MVC 中的连接字符串的 aws 环境变量