2015-06-12 2 views
-1

Я получаю следующее исключение случайным образом, когда пытаюсь отправить какое-либо сообщение в облачную очередь Azure Storage. Я использую версию 0.5.1 в латинской клиентской библиотеке хранения для android. Я не использую SAS, вместо этого я использую имя и ключ учетной записи Azure. Пожалуйста, помогите мне решить эту проблему.Случайное хранениеException при отправке сообщения в очередь хранения Azure (не всегда)

com.microsoft.azure.storage.StorageException: серверу не удалось аутентифицировать запрос. Убедитесь, что значение заголовка авторизации сформировано правильно, включая подпись. на com.microsoft.azure.storage.core.StorageRequest.materializeException (StorageRequest.java.307) на com.microsoft.azure.storage.core.ExecutionEngine.executeWithRetry (ExecutionEngine.java:181) на com.microsoft.azure.storage .queue.CloudQueue.exists (CloudQueue.java:887) в com.microsoft.azure.storage.queue.CloudQueue.createIfNotExists (CloudQueue.java:526) на com.microsoft.azure.storage.queue.CloudQueue.createIfNotExists (CloudQueue .java: 501)

Edit: Вот мой код, который вызвал исключение. Как я уже говорил, это нормально работает, исключение случается случайным образом.

try 
    { 
     // Retrieve storage account from connection-string. 
     CloudStorageAccount storageAccount = 
       CloudStorageAccount.parse(STORAGE_CONNECTION_STRING); 

     // Create the queue client. 
     CloudQueueClient queueClient = storageAccount.createCloudQueueClient(); 

     // Retrieve a reference to a queue. 
     CloudQueue queue = queueClient.getQueueReference(QUEUE); 

     // Create the queue if it doesn't already exist. 
     queue.createIfNotExists(); 

     // Create a message and add it to the queue. 
     CloudQueueMessage message = new CloudQueueMessage(msg); 
     queue.addMessage(message); 
    } 
    catch (Exception e) 
    { 
     // Output the stack trace. 
     e.printStackTrace(); 
    } 
+0

это происходит периодически с одной и той же строки подключения для хранения или другая строка подключения к хранилищу каждый раз? Не могли бы вы подтвердить свой ключ учетной записи? –

+0

@ EmilyGerner-Microsoft, я использую одну и ту же строку подключения к хранилищу каждый раз. Я проверил ключ учетной записи. Это исключение случается только иногда, иначе оно отлично работает. –

+0

Не могли бы вы предоставить дополнительную информацию, такую ​​как журналы на стороне клиента или службы, для запроса на отказ? Ведение журнала на стороне клиента может быть включено в OperationContext, а журналы - logcat, как это стандартно для Android. Журналирование служебной стороны может быть включено в Azure Portal или в коде, используя API uploadServiceProperties на объекте клиента. Журналы служебной стороны хранятся в блоках, которые легко доступны через помощники в пакете аналитики библиотеки. –

ответ