所以我有这样的方法来设置最终将被添加到我的形象,一些基本的元数据标签:服务设置BitmapMetadata.Title在Windows Server 2003 Web版上运行会引发NotSupportedException
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: No imaging component suitable to complete this operation was found. ---> System.Runtime.InteropServices.COMException: Exception from HRESULT: 0x88982F50 \ --- End of inner exception stack trace --- \ at System.Windows.Media.Imaging.BitmapMetadata.SetQuery(String query, Object value) \ at System.Windows.Media.Imaging.BitmapMetadata.set_Title(String value)
作为localhost在Windows 8.1上运行,这工作正常。只要我将我的服务部署到我的Windows Server 2003网络版,就会引发显示的错误。发生什么事?
也许你错过了一个JPEG编码器。这通常在名称空间System.Drawing.Imaging中的System.Drawing.dll中。尝试做“ImageCodecInfo [] encoderArray = ImageCodecInfo.GetImageEncoders();”并检查返回的数组中是否至少有一个结果。 – RenniePet 2014-09-04 14:18:58
我已经跑了方法和打印的编解码器的名称,并得到: 内置BMP编解码器, 内置GIF编解码器, 内置TIFF编解码器, 内置PNG编解码器, 我猜我” m缺少一个jpg编码器?我如何着手在我的Windows 2003服务器上安装jpg编码器? – user1 2014-09-04 14:46:54
是的。不幸的是,我对这个具体情况一无所知。你可以尝试安装这个:http://support.microsoft.com/kb/958911(但是如果它导致问题,请不要责怪我:-) – RenniePet 2014-09-04 14:53:48