【发布时间】:2019-11-25 08:18:05
【问题描述】:
我正在尝试使用以下代码将 .PFX 文件(首先转换为 base64 文件)导入 Azure Keyvault。
但是我收到错误:操作返回了无效的状态代码“冲突”
Azure KeyVault 上绝对没有其他证书。
public async Task ImportCertificate(string base64FileCertFile, string CertPasswordText, string name)
{
AzureServiceTokenProvider azureServiceTokenProvider = new AzureServiceTokenProvider();
KeyVaultClient keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
Message = "Your application description page.";
int retries = 0;
//byte[] fileData = null;
//using (var binaryReader = new BinaryReader(request.Files[0].InputStream))
//{
// fileData = binaryReader.ReadBytes(request.Files[0].ContentLength);
//}
//var base64EncodedCertificate = Convert.ToBase64String(fileData);
bool retry = false;
try
{
/* The below do while logic is to handle throttling errors thrown by Azure Key Vault. It shows how to do exponential backoff which is the recommended client side throttling*/
do
{
long waitTime = Math.Min(GetWaitTime(retries), 2000000);
var result = await keyVaultClient.ImportCertificateAsync(ConfigurationManager.AppSettings["VaultUrl"].ToString(), name, base64FileCertFile, CertPasswordText);
Message = result.Id;
retry = false;
}
while (retry && (retries++ < 10));
}
/// <exception cref="KeyVaultErrorException">
/// Thrown when the operation returned an invalid status code
/// </exception>
catch (KeyVaultErrorException keyVaultException)
{
Message = keyVaultException.Message;
if ((int)keyVaultException.Response.StatusCode == 429)
retry = true;
}
}
【问题讨论】:
-
能否请您移除
try catch模块以获取异常详细信息或使用fiddler 捕获请求以获取详细错误信息?
标签: c# asp.net .net azure azure-keyvault