VS2019 Невозможно начать отладку на веб-сервере - PullRequest
0 голосов
/ 11 июня 2019

У меня был какой-то код, который я попробовал в HomeController, и он работал нормально, но как только я перехожу в библиотеку классов, он действует так.

Я попытался iisreset и удалить виртуальное репо и воссоздал его. Но не повезло

Я попытался прокомментировать часть кода и похоже, что строки 3 и 4, возможно, вызывают проблему

        private static readonly string vaultAddress = WebConfigurationManager.AppSettings["VaultUrl"];
        private static KeyVaultClient keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(GetAccessTokenAsync));
        private static readonly string UserName = keyVaultClient.GetSecretAsync(vaultAddress, "ADUsername", ConfigurationManager.AppSettings["ADUsernameVersion"]).GetAwaiter().GetResult().Value;
        private static readonly string Password = keyVaultClient.GetSecretAsync(vaultAddress, "ADPassword", ConfigurationManager.AppSettings["ADPasswordVersion"]).GetAwaiter().GetResult().Value;

public static async Task<string> GetAccessTokenAsync(string authority, string resource, string scope)
        {
            var clientId = WebConfigurationManager.AppSettings["ClientId"];
            var clientSecret = WebConfigurationManager.AppSettings["ClientSecret"];
            ClientCredential clientCredential = new ClientCredential(clientId, clientSecret);

            var context = new AuthenticationContext(authority, TokenCache.DefaultShared);
            var result = await context.AcquireTokenAsync(resource, clientCredential);

            return result.AccessToken;
        }

Сообщение об ошибке: «Не удалось запустить отладку на веб-сервере. Время операции истекло»

Это то, что работает в HomeController

    public ActionResult Index()
    {
        var vaultAddress = WebConfigurationManager.AppSettings["VaultUrl"];
        KeyVaultClient keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(GetAccessToken));
        var username = keyVaultClient.GetSecretAsync(vaultAddress, "ADUsername", ConfigurationManager.AppSettings["ADUsernameVersion"]).GetAwaiter().GetResult().Value;
        var password = keyVaultClient.GetSecretAsync(vaultAddress, "ADPassword", ConfigurationManager.AppSettings["ADPasswordVersion"]).GetAwaiter().GetResult().Value;
        Init();
        return View();
    }

    public static async Task<string> GetAccessToken(string authority, string resource, string scope)
    {
        var clientId = WebConfigurationManager.AppSettings["ClientId"];
        var clientSecret = WebConfigurationManager.AppSettings["ClientSecret"];
        ClientCredential clientCredential = new ClientCredential(clientId, clientSecret);

        var context = new AuthenticationContext(authority, TokenCache.DefaultShared);
        var result = await context.AcquireTokenAsync(resource, clientCredential);

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