我有 2 个项目 1.ASP.NET 核心网页接口 2. 蔚蓝函数
两者都托管在 Azure 上。 我也有不同的开发和生产帐户,我需要根据部署应用程序的环境使用不同的连接字符串。
对于实体框架,我使用2应用程序引用的单独项目。
当从 weba api 使用单独的项目时,我可以通过这种方式读取连接字符串
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文件。在这种情况下我该怎么办?
对于本地开发,请使用Environment Variable
来存储连接字符串。 (右键单击Visual Studio
Azure Function Project
选择properties
,Debug
,您将能够在那里添加Environment Variable
。这将存储在launchsettings.json
( 例如,您可以将其称为MSSQL_CONN_STR
部署到Azure
使用Application Settings
(转到Function app
单击"Configuration
",可以使用与上述相同的键(MSSQL_CONN_STR
(添加新的应用程序设置/环境变量,但使用连接字符串的production
值(
在 C# 代码中,您可以获得与上述相同的Environment Variable
Environment.GetEnvironmentVariable("MSSQL_CONN_STR");
来自 MS 关于 Azure 函数应用的应用程序设置
应用程序设置作为环境变量公开,供应用程序在运行时访问