C# 使用azure函数和web api的EF核心连接字符串设置
我有两个项目 1.ASP.NET核心WEB API 2.Azure函数 两者都托管在azure上。 我在开发和生产方面也有不同的账户,因为我需要根据应用程序部署的环境拥有不同的连接字符串 对于EntityFramework,我使用2应用程序所引用的一个单独的项目 当从weba api使用单独的项目时,我可以通过这种方式读取连接字符串C# 使用azure函数和web api的EF核心连接字符串设置,c#,azure,asp.net-core,entity-framework-core,azure-functions,C#,Azure,Asp.net Core,Entity Framework Core,Azure Functions,我有两个项目 1.ASP.NET核心WEB API 2.Azure函数 两者都托管在azure上。 我在开发和生产方面也有不同的账户,因为我需要根据应用程序部署的环境拥有不同的连接字符串 对于EntityFramework,我使用2应用程序所引用的一个单独的项目 当从weba api使用单独的项目时,我可以通过这种方式读取连接字符串 protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) {
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (!optionsBuilder.IsConfigured)
{
var envName = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
IConfigurationRoot configuration = new ConfigurationBuilder()
.SetBasePath(Path.Combine(Directory.GetCurrentDirectory()))
.AddJsonFile("appsettings.json", optional: false)
.AddJsonFile($"appsettings.{envName}.json", optional: false)
.Build();
var cs = configuration.GetConnectionString("DefaultConnection");
optionsBuilder.UseSqlServer(cs);
}
}
但是触发器没有appsettings.json文件。在这种情况下我能做什么?对于本地开发,请使用环境变量存储连接字符串。 在VisualStudio中右键单击Azure函数项目,然后选择属性、调试,您将能够在其中添加环境变量。这将存储在launchsettings.json中 例如,您可以称之为MSSQL_CONN_STR 部署到Azure时,请使用应用程序设置 转到功能应用程序单击配置,您可以添加一个新的应用程序设置/环境变量,该变量的键与上面的MSSQL_CONN_STR相同,但带有连接字符串的生产值 在C代码中,可以获得与上面相同的环境变量
Environment.GetEnvironmentVariable("MSSQL_CONN_STR");
来自MS关于Azure Function应用程序的应用程序设置
应用程序设置作为环境变量公开,供应用程序在运行时访问
但是触发器没有appsettings.json文件?您希望在哪里部署appsetting.json?@TonyNgo在部署触发器的服务器上为什么不创建1?我个人在使用azure函数时创建了appsetting.jsonproject@TonyNgo我确实创建了,但它只在本地工作。当我通过Visual studio部署azure函数时,appsettings.json被省略