У меня есть мобильное приложение, и я помещаю изображения в BLOB-объект хранилища Azure. при тестировании несколькими нашими людьми (на тестовом и бета-тестировании) все хорошо. Но когда мы выпустили его в бета-версию и получили возможность использовать сотни (может быть, более тысячи) пользователей, многие из них сообщили, что не могут видеть изображения. Это происходит на их iPhone, а также на телефонах Android разных производителей. Иногда для одного и того же изображения на одном телефоне это хорошо, а на другом не отображается.
Когда я проверяю журнал blob, я обнаружил много ошибок, в основном эти две:
AnonymousClientOtherError; 304
«Анонимный запрос, который завершился неудачно, как ожидалось, чаще всего запрос, который не прошел заданное предварительное условие. Общее количество анонимных запросов, которые не прошли проверку предварительного условия (например, If-Modified и т. Д.) Для запросов GET. Примеры: Условные запросы GET, которые не прошли проверку. " (От Microsoft)
AnonymousNetworkError; 200
«Наиболее частой причиной этой ошибки является отключение клиента до истечения тайм-аута в службе хранения. Вы должны изучить код в своем клиенте, чтобы понять, почему и когда клиент отключается от службы хранения. Вы также можете использовать Wireshark, Microsoft Message Analyzer, или Tcping для исследования проблем с сетевым подключением со стороны клиента »(от Microsoft) - вопрос здесь, это ошибка, а почему 200?
Интересно, это причины, вызвавшие мою проблему?
Для первого, насколько я понимаю, это на самом деле не ошибка, просто говорится, что версия, кэшированная клиентом, такая же, как версия сервера. Но когда моя клиентская сторона видит этот ответ, она думает, что это ошибка, и генерирует исключение, и поэтому изображение не отображается? (На самом деле я отдал свою клиентскую сторону на аутсорсинг, поэтому могу только догадываться)
Что касается второго, это потому, что тайм-аут моей клиентской стороны короче тайм-аута серверной? Но является ли тайм-аут тайм-аутом соединения или тайм-аутом сокета? каковы значения по умолчанию на стороне клиента и в Azure Blob?
Мой сервер Azure расположен в Восточной Азии (Гонконг), но мои пользователи находятся в материковом Китае. Интересно, могло ли это вызвать проблемы? Но когда несколько пользователей протестировали в Китае, все прошло хорошо.
Многие изображения на самом деле очень маленькие, всего от одной до двухсот k. Некоторые всего 11к.
Не могу понять, в чем причина ...