Dotnet核心应用程序未在生产中找到appsettings.json

时间:2016-12-27 11:41:48

标签: .net linux asp.net-web-api asp.net-core

我开发了一个在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();
    }

0 个答案:

没有答案