ошибка элемента мультимедиа sitecore

I am on v8.2

Я вижу следующую ошибку в файле журнала:

 ERROR Could not run the 'getMediaStream' pipeline for '/sitecore/media library/test image'. 
Original media data will be used.
Exception: System.ArgumentException
Message: Empty strings are not allowed.
Parameter name: filePathOrExtension
Source: Sitecore.Kernel
   at Sitecore.Diagnostics.Assert.ArgumentNotNullOrEmpty(String argument, String argumentName)
   at Sitecore.Resources.Media.MediaThumbnailGenerator.GetThumbnailFileName(MediaData mediaData, TransformationOptions options)
   at Sitecore.Resources.Media.MediaThumbnailGenerator.GetStream(MediaData mediaData, TransformationOptions options)
   at Sitecore.Resources.Media.MediaData.GetThumbnailStream(TransformationOptions options)
   at Sitecore.Resources.Media.ThumbnailProcessor.Process(GetMediaStreamPipelineArgs args)
   at (Object , Object[] )
   at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args)
   at Sitecore.Pipelines.DefaultCorePipelineManager.Run(String pipelineName, PipelineArgs args, String pipelineDomain)
   at Sitecore.Resources.Media.Media.GetStreamFromPipeline(MediaOptions options, Boolean& canBeCached)

Я предполагаю, что из-за этой ошибки элементы мультимедиа, которые я прикрепляю к шаблону ветки, на самом деле не работают, когда я создаю элемент в библиотеке мультимедиа, используя этот шаблон ветки.

Это может быть связано с Rainbow.config, я не уверен.

У кого-нибудь есть идея?


person novicecoder    schedule 15.07.2017    source источник
comment
Как выглядит ваше свойство, которое вы добавляете в ветку? Где используется ветка? Скорее всего, это из-за того, что что-то недействительно в элементе, который вы создаете, и он не может сохранить или создать :)   -  person Charlie Afford    schedule 16.07.2017


Ответы (3)


Я просмотрел предоставленную вами трассировку стека.

Исключение происходит в течение

Sitecore.Resources.Media.MediaThumbnailGenerator.GetThumbnailFileName(MediaData mediaData, TransformationOptions options)

Единственное место, где может быть выброшено System.ArgumentException с сообщением «Пустые строки не допускаются». и Имя параметра: filePathOrExtension является ctor GetFileIconPipelineArgs:

введите здесь описание изображения

'причина:

введите здесь описание изображения

Могу предположить, что mediaData.Extension содержит пустую строку. Свойство Getter Extension говорит, что оно использует поле «Расширение» элемента мультимедиа.

Поэтому я предлагаю проверить значение поля «Расширение» элемента мультимедиа «/sitecore/media library/test image». Я уверен, вы обнаружите, что он пуст.

person Aleksey Shevchenko    schedule 18.07.2017
comment
Это правильно. Но это означает, что загрузка где-то не удалась. На самом деле это не так. Только когда эти элементы мультимедиа являются частью файла единорога, они терпят неудачу. В противном случае элементы мультимедиа успешно загружаются и корректно обрабатывают расширение/миниатюру. - person novicecoder; 24.07.2017

У меня такая же ошибка и я понял, что ошибка не появляется, когда присутствует английский пункт той же версии. Я предполагаю, что конвейер ищет неправильную версию, а это означает, что используется английский язык или язык по умолчанию.

Вот все мои наблюдения (у меня не было времени исследовать дальше):

  1. Проблема появляется только для версионированных элементов мультимедиа
  2. Проблема возникает только для языка, отличного от английского или языка по умолчанию (подлежит уточнению).
  3. Проблема возникает, когда выбран элемент, для которого не существует версии на английском языке или языке по умолчанию с тем же значением (например, когда вы запрашиваете элемент на немецком языке версии 2, а есть только версия 1 на английском языке)
  4. Проблема сохраняется в обновлении 5 Sitecore 8.2.

Исходя из моих наблюдений, я предполагаю, что конвейер getMediaStream переопределяет запрошенный язык, что приводит к пустому значению в расширении и/или имени файла.

Клиент Sitecore, похоже, отправляет на сервер неправильный язык при попытке отобразить элемент предварительного просмотра. Когда я смотрю на немецкую версию предмета, запрос выглядит так:

<SERVER URL>/sitecore/shell/Applications/-/media/<Item ID>.ashx?bc=white&db=master&h=128&la=en&mw=640&thn=1&vs=1&ts=e73e6b27-b0db-45d7-a3c9-29830ad0191a&udi=1

Обратите внимание, что запрошенный язык — английский. Когда я изменяю параметр на de, запрос работает.

Кто-нибудь может подтвердить это поведение? Мне это кажется ошибкой Sitecore.

person Markus    schedule 08.11.2017

Я также получил ту же ошибку журнала, но это произошло при присоединении нового файла (pdf) после отсоединения старого файла. Невозможно было загрузить новый файл, он просто не загружался (получил красивую ошибку asp.net в i-frame, с той же ошибкой, что и выше).

В итоге я полностью удалил элемент мультимедиа и воссоздал его с прикрепленным новым файлом в качестве обходного пути.

Может глюк, может проблема пользователя... но пока не воспроизвел. Я вернусь к этому, если найду исправление или хотя бы как воспроизвести.

person Michael    schedule 15.01.2018