发布到IIS使用错误的appSettings.json

时间:2019-11-13 01:53:40

标签: c# asp.net-core iis .net-core asp.net-core-webapi

我有一个.NET Core 2.1 Web API,我通过IIS在本地托管。我有两个子appSettings.json文件,开发和生产。我还在项目中创建了这些环境。我的发布个人资料使用Debug个人资料。当我实际调试代码时,它可以很好地工作。

我遇到的问题是,当我在私有IP下发布到IIS并访问它时,似乎我的代码使用了错误的appSettings.json文件。我知道这一点是因为我有用于不同环境的不同文件路径,并且它从Production中打印出了一个文件路径。

当我从inetput / wwwroot / {MyProject}文件夹中物理删除appSettings.Production.json时,甚至更奇怪的是, Postman 甚至无法与API通讯并且得到了 500 错误的请求。也许我没有正确配置或链接?这是我第一次使用环境。

我为此损失了大约4个小时,我正在失去它...

Program.cs

public static void Main(string[] args)
        {
            CreateWebHostBuilder(args).Build().Run();
        }

        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .ConfigureAppConfiguration(ConfigConfiguration)
                .UseStartup<Startup>();

        static void ConfigConfiguration(WebHostBuilderContext ctx, IConfigurationBuilder config)
        {
            config.SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("appSettings.json", optional: false, reloadOnChange: true)
                .AddJsonFile($"appSettings.{ctx.HostingEnvironment.EnvironmentName}.json", optional: true, reloadOnChange: true);

        }

需要更多信息,请让我知道!

1 个答案:

答案 0 :(得分:0)

确保在服务器上设置ASPNETCORE_ENVIRONMENT环境变量,请参见Use multiple environments in ASP.NET Core