Добавление хранилища ключей в мое приложение приводит к ошибке запуска при публикации (работает локально) - PullRequest
0 голосов
/ 27 июня 2019

Мое веб-приложение сталкивается с ошибкой при запуске 500.30 всякий раз, когда я добавляю конфигурацию приложения хранилища ключей Azure в мой файл program.cs.Локально у меня есть доступ к хранилищу, и я проверил его, но после публикации я получаю сообщение об ошибке.

Я попытался добавить в свое веб-приложение системные и пользовательские идентификаторы и предоставить ему разрешение как через контроль доступа, так и через доступ Azure.политики.Я также предоставил приложению доступ ко всему ресурсу.Я закомментировал эту часть, и приложение работает, поэтому я связал ошибку с хранилищем ключей.

public static IWebHost CreateWebHostBuilder(string[] args) =>
           WebHost.CreateDefaultBuilder(args)

// this gets commented out to run properly
               .ConfigureAppConfiguration((ctx, builder) =>
               {
                   var keyVaultEndpoint = GetKeyVaultEndpoint();
                   if (!string.IsNullOrEmpty(keyVaultEndpoint))
                   {
                       var azureServiceTokenProvider = new AzureServiceTokenProvider();
                       var keyVaultClient = new KeyVaultClient(
                           new KeyVaultClient.AuthenticationCallback(
                               azureServiceTokenProvider.KeyVaultTokenCallback));
                       builder.AddAzureKeyVault(
                           keyVaultEndpoint, keyVaultClient, new DefaultKeyVaultSecretManager());
                   }


               }
               ) // until here 
               .UseStartup<Startup>()
               .Build();

private static string GetKeyVaultEndpoint() => "https://<vault name>.vault.azure.net/";

Я ожидаю, что смогу получить доступ к хранилищу ключей.приложение выдает ошибку HTTP 500.30 - Ошибка запуска процесса ANCM при публикации.

Обновление: после перехода на OutOfProcess я теперь получаю ошибку 502.5.со следующим сообщением:

Unhandled Exception: Microsoft.Azure.Services.AppAuthentication.AzureServiceTokenProviderException: Parameters: Connection String: [No connection string specified], Resource: https://vault.azure.net, Authority: https://login.windows.net/<MyId>. Exception Message: Tried the following 3 methods to get an access token, but none of them worked.
Parameters: Connection String: [No connection string specified], Resource: https://vault.azure.net, Authority: https://login.windows.net/<MyId>. Exception Message: Tried to get token using Managed Service Identity. Access token could not be acquired. Failed after 5 retries. MSI ResponseCode: BadRequest, Response: 
Parameters: Connection String: [No connection string specified], Resource: https://vault.azure.net, Authority: https://login.windows.net/<MyID>. Exception Message: Tried to get token using Visual Studio. Access token could not be acquired. Visual Studio Token provider file not found at "D:\local\LocalAppData\.IdentityService\AzureServiceAuth\tokenprovider.json"
Parameters: Connection String: [No connection string specified], Resource: https://vault.azure.net, Authority: https://login.windows.net/<MyId>. Exception Message: Tried to get token using Azure CLI. Access token could not be acquired. 'az' is not recognized as an internal or external command,
operable program or batch file.

1 Ответ

0 голосов
/ 28 июня 2019

Мне удалось воспроизвести ту же проблему, и я получил ту же ошибку, чтобы решить проблему, попробуйте следующее:

Откройте файл * .csproj, найдите Property group tag иобновите его до:

 <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>       
    <AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
    <AspNetCoreModuleName>AspNetCoreModule</AspNetCoreModuleName>
  </PropertyGroup>

Попробуйте и посмотрите, поможет ли это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...