【发布时间】:2018-01-17 17:42:37
【问题描述】:
我在使用正确的环境设置运行我的 dotnet core 2.0 API(在 Ubuntu 16.04 上使用 .NET Core CLI)时遇到问题。
我在“~/.bash_profile”中添加了以下内容:
ASPNETCORE_ENVIRONMENT=staging
当我运行项目(使用 dotnet run)时,它似乎工作正常,它检测到它应该处于暂存状态。 但是,当我使用“dotnet publish”编译时 并尝试使用:
nohup dotnet API.dll --urls "http://*:1337" &> /var/log/dotnetlogs
它似乎没有检测到环境变量,并且总是默认使用“生产”环境。
Startup.cs:
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
}
程序.cs
public static void Main(string[] args)
{
var config = new ConfigurationBuilder()
.AddCommandLine(args)
.Build();
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseConfiguration(config)
.UseStartup<Startup>()
.Build();
host.Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build();
知道我怎样才能让它工作吗?
【问题讨论】:
-
确保您的环境变量没有被
launchSettings.json覆盖 -
您好,感谢您的建议。但是我相信 launchSettings.json 是由 Visual Studio 生成的,并且 .NET Core CLI 在构建/发布时不会创建此文件。事实上,我在 ubuntu 机器上的任何地方都找不到这个文件。
标签: c# .net-core ubuntu-16.04 asp.net-core-2.0