Я получаю следующее исключение случайным образом, когда пытаюсь отправить какое-либо сообщение в облачную очередь 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();
}
это происходит периодически с одной и той же строки подключения для хранения или другая строка подключения к хранилищу каждый раз? Не могли бы вы подтвердить свой ключ учетной записи? –
@ EmilyGerner-Microsoft, я использую одну и ту же строку подключения к хранилищу каждый раз. Я проверил ключ учетной записи. Это исключение случается только иногда, иначе оно отлично работает. –
Не могли бы вы предоставить дополнительную информацию, такую как журналы на стороне клиента или службы, для запроса на отказ? Ведение журнала на стороне клиента может быть включено в OperationContext, а журналы - logcat, как это стандартно для Android. Журналирование служебной стороны может быть включено в Azure Portal или в коде, используя API uploadServiceProperties на объекте клиента. Журналы служебной стороны хранятся в блоках, которые легко доступны через помощники в пакете аналитики библиотеки. –