我开发了一个在Dev Env中运行良好的Web Api + Angular JS应用程序。
当我在linux框下部署它时,它无法加载appsettings。*作为服务启动时(使用kestrel)。
当我手动启动它时,从安装它的文件夹启动它,它运行良好,但如果我尝试从根路径,使用完整路径,它将失败与服务模式相同。
我应该创建一个sh脚本来将其作为服务启动,还是可以修改我的Program / Startup类中的某些内容?
Program.cs:
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
}
Startup.cs
public Startup(IHostingEnvironment env)
{
_env = 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();
}