- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
默认的 ASP.NET Core web 项目在 Startup.cs
中包含这样的行:
if (string.Equals(env.EnvironmentName, "Development", StringComparison.OrdinalIgnoreCase))
{
app.UseBrowserLink();
app.UseDeveloperExceptionPage(ErrorPageOptions.ShowAll);
}
else
{
app.UseExceptionHandler("/Home/Error");
}
据我了解,EnvironmentName 是一种处理开发/生产环境的新方法。但它不会改变发布构建配置。那么如何设置不同的EnvironmentName
呢?
我可以想象它应该在“命令”中设置为服务器的参数。
最佳答案
So what is the way to set a different EnvironmentName?
设置 ASPNETCORE_ENVIRONMENT
环境变量。
设置环境变量的方法有很多种。其中包括 launchSettings.json
配置文件和 other environment-specific ways .以下是一些示例。
从控制台:
// PowerShell
> $env:ASPNETCORE_ENVIRONMENT="Development"
// Windows Command Line
> SET ASPNETCORE_ENVIRONMENT=Development
// Bash
> ASPNETCORE_ENVIRONMENT=Development
从 Azure Web 应用程序的应用程序设置:
I can imagine that it should be set in "Commands" as a parameter for server.
没错。在您的 project.json 中,添加 --ASPNET_ENV production
作为服务器的参数。
"commands": {
"web": "Microsoft.AspNet.Hosting --ASPNET_ENV production --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5001"
}
现在,当您运行 dnx 时。 web
从命令行,ASPNET_ENV
将是 production
。
WebHostBuilder
将 "ASPNETCORE_"
与 WebHostDefaults.EnvironmentKey
组合在一起,生成 "ASPNETCORE_environment"
。它还支持遗留 key 。
namespace Microsoft.AspNetCore.Hosting
{
public static class WebHostDefaults
{
public static readonly string ApplicationKey = "applicationName";
public static readonly string StartupAssemblyKey = "startupAssembly";
public static readonly string DetailedErrorsKey = "detailedErrors";
public static readonly string EnvironmentKey = "environment";
public static readonly string WebRootKey = "webroot";
public static readonly string CaptureStartupErrorsKey = "captureStartupErrors";
public static readonly string ServerUrlsKey = "urls";
public static readonly string ContentRootKey = "contentRoot";
}
}
_config = new ConfigurationBuilder()
.AddEnvironmentVariables(prefix: "ASPNETCORE_")
.Build();
if (string.IsNullOrEmpty(GetSetting(WebHostDefaults.EnvironmentKey)))
{
// Try adding legacy environment keys, never remove these.
UseSetting(WebHostDefaults.EnvironmentKey,
Environment.GetEnvironmentVariable("Hosting:Environment")
?? Environment.GetEnvironmentVariable("ASPNET_ENV"));
}
The environment key is set with the
ASPNETCORE_ENVIRONMENT
environment variable.ASPNET_ENV
andHosting:Environment
are still supported, but generate a deprecated message warning.
https://docs.asp.net/en/latest/migration/rc1-to-rtm.html
默认值为“生产”and is set here.
关于c# - 如何设置环境名称(IHostingEnvironment.EnvironmentName)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28258227/
默认的 ASP.NET Core web 项目在 Startup.cs 中包含这样的行: if (string.Equals(env.EnvironmentName, "Development", S
我有一个 ASP.NET Core 2 WebAPI,它将部署在以下环境中: INT、QA、STAGE、PRODUCTION 环境。 基于以上,我需要appsettings..json每个环境的文件。
我正在运行 .net core 2.2 并在 Windows 服务中托管 asp.net core。 例如。看到这个 https://docs.microsoft.com/en-us/aspnet/c
我的代码: public static async Task Main(string[] args) { var host = new HostBuilder()
当我在命令行中发出以下命令时: dotnetpublish -o "./../output"-c Release dotnetcli 正确发布了项目。但是,它不会复制 appsettings.Prod
我正在尝试按照 this 使用 Visual Studio 2015 创建 Azure 资源组项目教程。但是当我部署时,出现了一个奇怪的错误: [ERROR] Add-AzureRmAccount :
很抱歉问这个问题,但我已经研究这个 XML 转换系统好几天了。您可以在这里查看:Azure Pipeline File Transformation is not working. Why? 在 II
我创建了配置Staging对于我的 ASP.NET Core 使用 适用于 Windows 的 Docker 桌面 和 Docker VS 工具 .当我运行配置 Staging env.Environ
我是一名优秀的程序员,十分优秀!