簡體   English   中英

在Windows Server 2003 Web Edition上運行的服務中設置BitmapMetadata.Title會引發NotSupportedException

[英]Setting BitmapMetadata.Title in service running on Windows Server 2003 Web Edition throws NotSupportedException

所以我有這種方法來設置一些基本的MetaData標記,這些標記最終將添加到我的圖像中:

        BitmapMetadata metaData = new BitmapMetadata("jpg");
        foreach (var t in tags)
        {
            try
            {
                switch (t.Key)
                {
                    case "Author":
                        metaData.Author = new System.Collections.ObjectModel.ReadOnlyCollection<string>(new string[] { t.Value });
                        break;

                    case "Rating":
                        int rating = 0;
                        if (int.TryParse(t.Value, out rating))
                        {
                            metaData.Rating = rating;
                        }
                        break;

                    case "Subject":
                        metaData.Subject = t.Value;
                        break;

                    case "Title":
                        metaData.Title = t.Value;
                        break;

                    case "Comment":
                        metaData.Comment = t.Value;
                        break;

                    default:
                        keywords.Add(string.Format("{0}:{1}", t.Key, t.Value));
                        break;
                }
            }
            catch (Exception ex)
            {
                //Do some logging
            }
        }

而且我不斷收到錯誤:

System.NotSupportedException:未找到適合完成此操作的映像組件。 ---> System.Runtime.InteropServices.COMException:來自HRESULT的異常:0x88982F50 \\-內部異常堆棧跟蹤的結尾--\\位於System.Windows.Media.Imaging.BitmapMetadata.SetQuery(字符串查詢,對象值) \\ at System.Windows.Media.Imaging.BitmapMetadata.set_Title(字符串值)

在Windows 8.1上以localhost運行可以正常工作。 一旦將服務部署到Windows Server 2003 Web Edition,它將引發顯示的錯誤。 怎么了?

解決此問題的方法是顯式將SetQuery用於元數據...例如:

BitmapMetadata jpgData = new BitmapMetadata("jpg");
jpgData.SetQuery("/app13/irb/8bimiptc/iptc/object name", "Test Title");
jpgData.SetQuery("/app13/irb/8bimiptc/iptc/keywords", "Test Tag");
jpgData.SetQuery("/app13/irb/8bimiptc/iptc/date created", "20090512");
jpgData.SetQuery("/app13/irb/8bimiptc/iptc/time created", "115300-0800");
jpgData.SetQuery("/app13/irb/8bimiptc/iptc/caption", "Test Comment");
jpgData.SetQuery("/app13/irb/8bimiptc/iptc/by-line", "Test Author");
jpgData.SetQuery("/app13/irb/8bimiptc/iptc/copyright notice", "Copyright 2009");

來自對此鏈接的評論

這是因為Windows Server 2003中使用的WIC與Windows 7/8中的WIC不同,並且無法更新。 等等metadata.Title等拋出notfoundexception

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM