[メディア選択]ダイアログを使用してメディア アイテムを参照した際に、破損したプレビューのサムネイルが表示される場合があります。
この問題は、リスト ビューとツリー ビューの両方で、バージョン管理されたメディア アイテムでデフォルト言語のバージョンがない場合に発生します。 問題が発生すると、次のメッセージがSitecoreログに記録されます。
ERROR Application error.
Exception: System.ObjectDisposedException
Message: Cannot access a closed file.
Source: mscorlib
at System.IO.__Error.FileNotOpen()
at System.IO.FileStream.get_Length()
at Sitecore.Resources.Media.Streaming.RangeRetrievalResponse.WriteFullContent(HttpContext context, Stream fileContent)
at Sitecore.Resources.Media.MediaRequestHandler.DoProcessRequest(HttpContext context, MediaRequest request, Media media)
at Sitecore.Resources.Media.MediaRequestHandler.ProcessRequest(HttpContext context)
この問題を解決するには、ソリューションをSitecore XP 10.4.0以降へアップグレードしてください。
または、以下の方法で問題の影響を緩和することができます。
<site_root>\sitecore\shell\client\Business Component Library\Layouts\Renderings\ListsAndGrids\TreeViews\ItemTreeView.js
if (item.$icon && item.$icon.indexOf(".ashx") > 0 && item.$icon.indexOf("la=") === -1 ) {変更後:
item.$icon += "&la=" + this.model.get("contentLanguage");
}
if (item.$mediaurl && item.$mediaurl.indexOf(".ashx") > 0 && item.$mediaurl.indexOf("la=") === -1 ) {
item.$mediaurl += "&la=" + this.model.get("contentLanguage");
}
/* Fix for 539825 */
if (item.$icon && item.$icon.indexOf("la=") === -1 ) {
item.$icon += "&la=" + this.model.get("contentLanguage");
}
if (item.$mediaurl && item.$mediaurl.indexOf("la=") === -1 ) {
item.$mediaurl += "&la=" + this.model.get("contentLanguage");
}
/* End of fix for 539825 */
<site_root>\sitecore\shell\client\Business Component Library\Layouts\Renderings\ListsAndGrids\ListControls\ListControl.js