Приложение Asp.Net Core, развернутое в IIS (локально), не может считывать значения из «Secrets-Manager»? - PullRequest
0 голосов
/ 28 сентября 2019

Когда я компилирую свое приложение с помощью 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.

Это ожидаемое поведение?

...