我已将API配置为使用托管标识从Azure KeyVault获取Azure存储连接字符串。
现在的问题是,当我在Visual Studio中本地运行代码时,它不再使用appsettings.development.json中的连接字符串"StorageAccount": "UseDevelopmentStorage=true"
因此,我不能在本地运行时使用模拟器。
我在控制器中创建了以下条件来解决此问题:
public FileController(IConfiguration configuration, IWebHostEnvironment env)
{
this.configuration = configuration;
if (env.IsDevelopment())
{
conn = this.configuration.GetConnectionString("StorageAccount");
}
else
{
conn = this.configuration["StorageConnectionString"];
}
}
这样做合适吗?
1条答案
按热度按时间lhcgjxsq1#
在本地,如果您的
ASPNETCORE_ENVIRONMENT
设置为Development
,那么它将读取您的本地存储帐户,如UseDevelopmentStorage=true
。当你发布到azure时,它将使用你的web应用的MSI从密钥库获取connectionstring。
有关更多详细信息,请参考以下代码: