阻止与Azure存储帐户的连接

时间:2019-08-21 09:48:53

标签: c#

我有一个使用c#开发的应用程序,其第一个功能是一种连接到存储帐户以便能够管理Blob的方法。 我的问题是我想在尝试连接3篇文章后阻止连接。

这是代表与存储帐户的连接的方法

public bool Connect(out String strerror)
{
    strerror = "";

    try
    {
        storageAccount = new CloudStorageAccount(new StorageCredentials(AccountName, AccountConnectionString), true);
        MSAzureBlobStorageGUILogger.TraceLog(MessageType.Control,CommonMessages.ConnectionSuccessful);
        return true;
    }
    catch (Exception ex01)
    {
        Console.WriteLine(CommonMessages.ConnectionFailed + ex01.Message);
        strerror =CommonMessages.ConnectionFailed +ex01.Message;
        return false;
    }

}

2 个答案:

答案 0 :(得分:1)

在创建CloudStorageAccount变量时,仍然没有与存储帐户建立任何连接,可以通过添加随机凭证轻松地进行测试。在后台,所有库仅执行对Storage API的REST调用,因此在您实际检索或发送数据之前不会建立任何连接。

该库还已经实现了自己的机制,以在失败的情况下重试请求,默认为3次重试,但是您可以像这样手动更改:

var options = new BlobRequestOptions()
{
  RetryPolicy = new ExponentialRetry(deltaBackoff, maxAttempts),
};
cloudBlobClient.DefaultRequestOptions = options;

答案 1 :(得分:0)

将其包装在while循环中并继续重试直到成功或达到3次尝试次数怎么办?

string strError;
const int maxConnectionAttempts = 3;

var connectionAttempts = 0;
var connected = false;

while (!connected && connectionAttempts < maxConnectionAttempts) 
{
    connected = Connect(out strError);
    connectionAttempts++;
}