sitecore媒体项错误

时间:2017-07-15 15:49:41

标签: sitecore sitecore8 sitecore8.2

我在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有关,我不确定。

有没有人有想法?

3 个答案:

答案 0 :(得分:0)

我经历了你提供的堆栈跟踪。

中发生异常
Sitecore.Resources.Media.MediaThumbnailGenerator.GetThumbnailFileName(MediaData mediaData, TransformationOptions options)

唯一可以抛出System.ArgumentException的地方,消息'不允许空字符串'。和参数名称:filePathOrExtension是GetFileIconPipelineArgs的ctor:

enter image description here

“的原因:

enter image description here

我可以假设mediaData.Extension包含空字符串。 Getter of Extension属性表示它使用媒体项的“扩展”字段。

所以我建议检查'/ sitecore /媒体库/测试图像'媒体项的'扩展'字段的值是什么。我相信你会发现它是空的。

答案 1 :(得分:0)

我有同样的错误,并意识到当存在相同版本的英文项目时不会出现错误。我的假设是管道查找错误的版本,这意味着使用英语或默认语言。

以下是我的所有观察结果(没有时间进一步调查):

  1. 仅针对版本化媒体项目显示问题
  2. 问题仅适用于非英语或非默认语言( TBD
  3. 如果选择的项目不存在相同值的英语或默认语言版本,则会出现问题(例如,当您在德语版本2中请求该项目时,只有英语版本1
  4. Sitecore 8.2 update 5中存在问题
  5. 根据我的观察,我假设 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的错误。

答案 2 :(得分:0)

我也得到了相同的日志错误,但在分离旧文件后附加了一个新文件(pdf)。上传新文件是不可能的,它根本就不会上传(在i-frame中得到了一个很好的asp.net错误,错误与上面相同)。

我最终完全删除了媒体项目并使用附加的新文件重新创建它,作为解决方法。

也许是一个小故障,也许是一个用户问题......但还没有复制它。如果我找到一个解决方案,或者至少如何重现,我会重新开始。