Когда я компилирую свое приложение с помощью dotnet publish -c Release
и развертываю приложение в IIS, все работает нормально.Проблема возникает, когда я пытаюсь получить значения из Secrets-Manager
.
Я гарантирую, что мое приложение на IIS нацелено на режим "Разработка", чтобы убедиться, что я использую "Secrets-Manager" и НЕ Azure Key Vault.
Я добавил Console.WriteLine
кФайл Startup.cs, чтобы убедиться, что я в режиме Development
.
Когда я перехожу к месту на моем сайте, где мне нужно получить APIKey и APISecret из «Менеджера секретов», оно становится пустым.
Вот мои настройки в Startup.cs
:
Console.WriteLine($"Enviornment is: {ContextBoundObject.HostingEnvironment.EnvironmentName}");
if (ContextBoundObject.HostingEnvironment.IsProduction())
{
var builtConfig = config.Build();
var azureServiceTokenProvider = new AzureServiceTokenProvider();
var keyVaultClient = new KeyVaultClient(
new KeyVaultClient.AuthenticationCallback(
azureServiceTokenProvider.KeyVaultTokenCallback
)
);
config.AddAzureKeyVault(
$@"https://{builtConfig["KeyVaultName"]}.vault.azure.net/",
keyVaultClient,
new DefaultKeyVaultSecretManager()
);
Затем я получаю секреты от "Менеджера секретов":
string apiKey = configuration[nameof(VaultKeys.CloudinaryApiKey)];
string apiSecret = configuration[nameof(VaultKeys.CloudinaryApiSecret)];
Это все работает, когдаЯ запускаю приложение на IISExpress, нажимая клавишу F5, но оно не работает при локальном развертывании его в IIS.
Это ожидаемое поведение?