Как указать время ожидания для асинхронного вызова Azure KeyVaultManagementClient? - PullRequest
0 голосов
/ 01 июня 2018

Я получаю доступ к Azure KeyVault из .NET.Если подключение к Интернету заблокировано, Vaults.GetAsync займет около 2 минут.Я бы предпочел установить значение примерно на 10 секунд.

Вот код, который я использую:

AzureCredentials creds = new AzureCredentialsFactory().FromServicePrincipal(clientId, clientSecret, tenantId, AzureEnvironment.AzureGlobalCloud);
KeyVaultManagementClient kvMgmtClient = new KeyVaultManagementClient(creds);
kvMgmtClient.SubscriptionId = subscriptionId;

vault = kvMgmtClient.Vaults.GetAsync(resourceGroupName, vaultName).Result;

Я пытался установить ManagementClient.LongRunningOperationRetryTimeout, но это не дало эффекта.

Я также пытался использовать CancellationToken, например так:

CancellationTokenSource cts = new CancellationTokenSource();
cts.CancelAfter(10000);

AzureCredentials creds = new AzureCredentialsFactory().FromServicePrincipal(clientId, clientSecret, tenantId, AzureEnvironment.AzureGlobalCloud);
KeyVaultManagementClient kvMgmtClient = new KeyVaultManagementClient(creds);
kvMgmtClient.SubscriptionId = subscriptionId;
vault = kvMgmtClient.Vaults.GetAsync(resourceGroupName, vaultName, cts.Token).Result;

, но, похоже, это тоже не имеет никакого эффекта.Что я делаю не так?

...