我有一个.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个小时,我正在失去它...
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);
}
需要更多信息,请让我知道!
答案 0 :(得分:0)
确保在服务器上设置ASPNETCORE_ENVIRONMENT
环境变量,请参见Use multiple environments in ASP.NET Core
。