У меня есть приложение ASP.NET Core 3, в котором используется хранилище ключей Azure. Он отлично работает на производстве, а также отлично отлаживается в vs2019, если я вошел в свою учетную запись Microsoft в Visual Studio. Но когда я не вошел в VS, он дает сбой и препятствует запуску приложения, а не продолжает запуск приложения. Я хотел бы, чтобы это работало, когда разработчик не вошел в VS (как другие разработчики работают таким образом). Вот соответствующий код запуска:
public static IHostBuilder CreateHostBuilder(string[] args)
{
{
static string GetKeyVaultEndpoint() => "https://[myappvalut].vault.azure.net";
var azureServiceTokenProvider = new AzureServiceTokenProvider();
var keyVaultClient = new KeyVaultClient(
new KeyVaultClient.AuthenticationCallback(
azureServiceTokenProvider.KeyVaultTokenCallback));
return Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.ConfigureHostConfiguration(c => c.AddAzureKeyVault(GetKeyVaultEndpoint(), keyVaultClient, new DefaultKeyVaultSecretManager()));
}
}
и вот исключение, которое я получаю при запуске:
Microsoft.Azure.Services.AppAuthentication.AzureServiceTokenProviderException: 'Параметры: Строка подключения: [Строка подключения не указана], ресурс: https://vault.azure.net, Полномочия: https://login.windows.net/[guid]. Сообщение об исключении: Попробовал следующие 3 метода для получения токена доступа, но ни один из них не сработал.
Есть ли какой-нибудь изящный способ восстановиться после этого и продолжить запуск приложения, или добавить Key Vault, только если я знаю, что у меня есть строка подключения?