Столбец NvarChar (Max) в таблицах службы приложений Azure сохраняет пустую строку для больших данных.

Когда я пытаюсь преобразовать массивы байтов для изображения (и аудиофайла, созданного в приложении Xamarin Forms) в JSON и сохранить его в SQL-сервере Azure App Service в столбце NVARCHAR(Max), он полностью опускает эту запись и вместо этого сохраняет пустую строку.

Вот пример создаваемого файла JSON. Большие данные JSON

когда в файле json нет массивов байтов, результирующие строковые данные сохраняются нормально.

Остальные данные в соответствующих столбцах тоже сохраняются нормально.


person Supreet    schedule 15.09.2016    source источник


Ответы (1)


Не загружайте и не размещайте в базе данных. Поместите его в учетную запись хранения. Блог о том, как это сделать (примерно), см. в разделе https://shellmonger.com/2016/05/30/30-days-of-zumo-v2-azure-mobile-apps-day-27-file-handling-v1/ и https://shellmonger.com/2016/06/01/30-days-of-zumo-v2-azure-mobile-apps-day-28-file-handling-v2/

Если вы не используете Xamarin и/или Cordova, существуют аналогичные пакеты SDK для обработки v1 в iOS и Android. Однако сейчас синхронизация файлов работает только в .NET.

person Adrian Hall    schedule 15.09.2016
comment
Идея состоит в том, чтобы обязательно сохранить его в учетной записи хранения. Но, учитывая мой контекст, я хотел проверить, могу ли я как-то сохранить его в БД. Чтобы дать вам некоторый контекст, в моем мобильном приложении xamarin, чтобы получить список байтов, мне придется копаться во многих объектах. (Шаблоны->Разделы->Элементы управления, а затем выяснить элементы управления и, если они относятся к типу больших двоичных объектов, затем обновить байты в большом двоичном объекте и получить URL-адрес). Мое сохранение с мобильного устройства уже очень медленное, потому что я выполняю лазурную автономную синхронизацию многих данные. Моя идея заключалась в том, чтобы передать данные в БД, откуда соответствующее веб-приложение может их забрать и сохранить в хранилище. - person Supreet; 16.09.2016
comment
Если ваше приложение работает медленно при автономной синхронизации, убедитесь, что вы выполняете добавочную синхронизацию (поля UpdatedAt и поле Version в модели на стороне клиента, а также именованный запрос в вызове PullAsync()). - person Adrian Hall; 16.09.2016
comment
Спасибо, Адриан, изначально я использовал инкрементную синхронизацию, но оказалось, что она не всегда возвращает все данные, которые должна. Хотя это немного медленно, но отсутствие передачи ключа запроса гарантирует 100%, что я получу все наборы записей. - person Supreet; 19.09.2016
comment
В бэкэнд-пакете SDK v2.2.1 Node.js была ошибка при использовании с хранилищем данных SQLite. Это привело к тому, что добавочная синхронизация работала неправильно. Установите версию 2.2.0 (или дождитесь исправления в версии 3.0 позже на этой неделе). Вы можете прочитать об ошибке здесь: github.com/Azure/azure-mobile-apps-node/issues/496 - person Adrian Hall; 19.09.2016