WIC CreateDecoderFromStream返回0x88982F50后服务器迁移(WIC

2019-06-24 23:40发布

我有我使用WIC的.net应用程序创建一个缩略图生成程序。 它一直在努力罚款在过去的一年,但我们只是迁移到新的服务器。

旧服务器是W2K8 R2 SP1企业新的服务器是W2K8标准SP1

下面是错误的代码

    Public Sub New(ByVal PictureData As Byte())
        Me.WICFactory = New WICImagingFactory()

        Dim InputStream As IWICStream = WICFactory.CreateStream()
        InputStream.InitializeFromMemory(PictureData, PictureData.Length)

        InputDecoder = WICFactory.CreateDecoderFromStream(InputStream, Nothing, WICDecodeOptions.WICDecodeMetadataCacheOnDemand)

        '^===== This line throws the HRESULT 0x88982F50

我已经检查过的画面数据是有效的数据。 如果我跑在旧服务器上的代码完全相同的画面效果还算不错。

Answer 1:

这是WINCODEC_ERR_COMPONENTNOTFOUND。 这意味着WIC无法找到注册文件的信息流中的类型的解码器类。

以下是我建议:

在旧的服务器在那里工作,打印出InputDecoder.GetDecoderInfo()的值。GetCLSID(),也许还GetAuthor / GetFriendlyName。 如果它的内置CLSID上市一个在这里 ,那么你的新机器上的WIC可能被打破。 否则,你需要找出你正在使用的旧机器上的解码器的来源,并将其安装到新的机器。

还是只是到处寻找不管是什么类型的文件,你有一个解码器。



Answer 2:

问题是,我是运行Server 2008 SP1。 正如在描述这个问题,你需要应用平台更新到Windows Server 2008(SP2后)WIC是可用之前。 (它可在本地R2)



文章来源: WIC CreateDecoderFromStream returning 0x88982F50 post server migration