Azure存储Blob错误-AnonymousClientOtherError和Anonymous NetworkErr



我有一个移动应用程序,我把图像放在Azure存储Blob中。当我们自己的几个人测试(测试版和测试版)时,一切都很好。但当我们将其发布到测试版,并有数百(可能超过1000)用户可供使用时,他们中的许多人报告说他们看不到图像。这种情况发生在他们的iPhone上,也发生在许多不同品牌的安卓手机上。有时,对于相同的图像,在一部手机上它是好的,但在另一部手机中它不显示。

当我检查blob日志时,我看到了很多错误,主要是这两个:

  1. AnonymousClientOtherError; 304

"按预期失败的匿名请求,最常见的是未通过指定前提条件的请求。未通过GET请求的前提条件检查(如If-Modified等)的匿名请求总数。示例:检查失败的条件GET请求。"(来自Microsoft)

  1. AnonymousNetworkError; 200

"此错误最常见的原因是客户端在存储服务超时之前断开连接。您应该调查客户端中的代码,以了解客户端断开与存储服务连接的原因和时间。您还可以使用Wireshark、Microsoft Message Analyzer或Tcping来调查客户端的网络连接问题。"(来自Microsoft)-这里有一个问题,这是一个错误,但为什么是200?

我想知道是不是这些原因导致了我的问题?

对于第一个,根据我的理解,这实际上并不是一个错误,它只是说客户端缓存的版本与服务器版本相同。但是,当我的客户端看到这个响应时,它认为这是一个错误,并抛出异常,因此没有显示任何图像?(我实际上外包了我的客户,所以我只能猜测)

对于第二个问题,是因为我的客户端的超时时间比服务器端的超时时间短吗?但是超时是连接超时还是套接字超时?客户端和Azure Blob上的默认值是什么?

我的Azure服务器位于东亚(香港),但我的用户在中国大陆。我想知道这是否会引起问题?但当一些用户在中国进行测试时,一切都很好。

许多图像实际上都很小,只有一两百k。有些只有11k。

我不知道是什么原因。。。

这些图像是可公开访问的吗?如果是,我们建议使用CDN为Azure中的Blob提供服务,因为随着消费者数量的增加,您可能会达到单个流行映像的限制。

此外,最好确保您的应用程序和Azure存储之间没有网络问题,这可能会导致您的最终用户客户端在存储服务超时之前断开连接。第一步是使用Wireshark或Microsoft Message Analyzer来调查网络连接问题。请关注"使用Wireshark捕获网络流量"(http://azure.microsoft.com/en-us/documentation/articles/storage-monitoring-diagnosing-troubleshooting/)监控、诊断和故障排除Microsoft Azure存储以确定问题是由网络中断引起的。

相关内容

最新更新