2015-06-12 84 views
-1

當我嘗試向Azure存儲的Cloud Queue發送某條消息時,隨機出現以下異常。我正在使用Android的Azure存儲客戶端庫的0.5.1版本。我沒有使用SAS,而是使用Azure帳戶名稱和密鑰。請幫我解決這個問題。向Azure存儲隊列發送消息時出現Random StorageException(不總是)

com.microsoft.azure.storage.StorageException:服務器無法驗證請求。確保授權標頭的值正確形成,包括簽名。 at com.microsoft.azure.storage.core.StorageRequest.materializeException(StorageRequest.java:307)at com.microsoft.azure.storage.core.ExecutionEngine.executeWithRetry(ExecutionEngine.java:181)at com.microsoft.azure.storage .queue.CloudQueue.exists(CloudQueue.java:887)at com.microsoft.azure.storage.queue.CloudQueue.createIfNotExists(CloudQueue.java:526)at com.microsoft.azure.storage.queue.CloudQueue.createIfNotExists(CloudQueue的.java:501)

編輯: 這裏是我的代碼引起異常。正如我所說的,它有時可以正常工作,異常會隨機發生。

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中打開並按照Android的標準登錄到logcat。可以在Azure門戶中或在客戶端對象上使用uploadServiceProperties API的代碼中打開服務端日誌記錄。服務端日誌存儲在blob中,可通過庫的分析包中的助手輕鬆訪問。 –

回答

相關問題