我有一个.net核心Web项目,该项目正在Windows(10或Server)上发布到IIS。我似乎无法让IIS通过配置编辑器提供连接字符串。我希望在这里使用连接字符串,以便在每次部署后都不会覆盖它。
我尝试使用ASPNETCORE_ConnectionStrings__DefaultConnection
,ConnectionStrings:DefaultConnection
但该工作都没有,我总是收到500错误,指出连接字符串不能为null。
我在这里想念什么?
这是我Startup.cs
文件的一部分:请注意,此应用程序是在默认配置为您完成此操作之前的一段时间。
public class Startup
{
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)
.AddUserSecrets<Startup>()
.AddEnvironmentVariables();
Configuration = builder.Build();
}
}
我已经安装了一个全新的.Net Core 2.2应用程序。即使使用较新的程序/启动程序。连接字符串未通过。
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args) //<-- adds config.AddEnvironmentVariables();
.UseStartup<Startup>();
}
我认为您需要从环境变量中删除ASPNETCORE_前缀(只是您的连接字符串而不是ASPNETCORE_ENVIRONMENT)。
我在这里查看环境变量配置提供程序的Microsoft源代码:https : //github.com/aspnet/Configuration/blob/d469707ab18eef7ed0002f00175a9ad5b0f36250/src/Config.EnvironmentVariables/EnvironmentVariablesConfigurationProvider.cs
如果需要,它确实需要一个“前缀”,但是当我查看“ CreateDefaultBuilder”的源代码时:https : //github.com/aspnet/MetaPackages/blob/master/src/Microsoft.AspNetCore/WebHost .cs#L177
它只是用一个空的前缀参数来调用它,这意味着您根本不应该使用任何前缀:
config.AddEnvironmentVariables();
当然,您可以使用您选择的前缀手动将对调用的添加添加到AddEnvironmentVariables中,然后您也可以在其前面添加环境变量
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句