2015-02-10 217 views
1

我有一個移動應用程序,並將圖像放入Azure存儲Blob中。當我們的幾個人(測試和測試版)測試時,它都很好。但是當我們發佈它到beta版本並且有數百個(可能超過一千個)用戶使用時,很多用戶報告他們看不到圖像。它發生在他們的iPhone和許多不同品牌的Android手機上。有時候,對於相同的圖像,在一部手機上它是好的,但在另一部手機上卻不顯示。Azure存儲Blob錯誤 - AnonymousClientOtherError和AnonymousNetworkError

當我檢查BLOB日誌,我看到了很多的錯誤,主要是這兩個:

  1. AnonymousClientOtherError; 304

「匿名請求失敗如預期,最常見的請求失敗指定前提條件 GET請求失敗前提條件檢查(如If-修改等)的匿名請求總數 示例:檢查失敗的條件GET請求。 (來自微軟)

  • AnonymousNetworkError; 200
  • 「這個錯誤的最常見的原因是客戶端的超時在存儲服務期滿之前斷開。您應該調查的代碼在客戶端了解客戶端與存儲服務斷開連接的原因和時間,還可以使用Wireshark,Microsoft Message Analyzer或Tcping來調查客戶端的網絡連接問題。「(來自微軟) - 這是一個問題一個錯誤,但爲什麼它是200?

    我不知道這是否是導致我的問題的原因?

    對於第一個,從我的理解來說,這實際上並不是一個錯誤,它只是說緩存的版本與服務器版本相同。但是,當我的客戶端看到這個響應時,它認爲這是一個錯誤並拋出異常,因此沒有顯示圖像? (我實際上外包了我的客戶端,所以我只能猜測)

    對於第二個,是因爲我的客戶端的超時比服務器端的超時短嗎?但是連接超時或套接字超時是否超時?客戶端和Azure Blob上的默認值是什麼?

    我的Azure服務器位於東亞(香港),但我的用戶在中國大陸。我想知道這是否會導致問題?但是當少數用戶在中國進行測試時,這一切都很好。

    許多圖像實際上非常小,只有一到兩百k。有些只有11k。

    我不明白是什麼原因...

    回答

    0

    這些公衆可訪問的圖像?如果是的話,我們建議使用CDN爲Azure中的Blob提供服務,因爲隨着您擴大消費者數量,您可能會遇到單個流行映像的限制。

    此外,最好確保應用程序和Azure存儲之間沒有網絡問題,這會導致您的最終用戶客戶端在存儲服務中的超時過期之前斷開連接。第一步是使用Wireshark或Microsoft Message Analyzer來調查網絡連接問題。請按照監視器附錄中的「使用Wireshark捕獲網絡通信」(http://azure.microsoft.com/en-us/documentation/articles/storage-monitoring-diagnosing-troubleshooting/)部分,診斷Microsoft Azure存儲並對其進行故障排除,以確定問題是否由網絡丟失引起。