Вопрос по .net, vb.net – WIC CreateDecoderFromStream, возвращающий 0x88982F50 после миграции сервера

3

У меня есть подпрограмма генерации эскизов, которую я создал с помощью WIC для приложения .NET. В прошлом году все работало нормально, но мы только что перешли на новый сервер.

Старый сервер был W2k8 R2 Enterprise SP1 Новый сервер W2k8 Standard 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

Я проверил и данные изображения являются действительными данными. Точно такая же картина работает нормально, если я запускаю код на старом сервере.

Ваш Ответ

2   ответа
1

что я работал под управлением Server 2008 SP1. Как описано вэтот вопрос, вам нужно применить обновление платформы для Server 2008 (после SP2), прежде чем WIC станет доступным. (Доступно изначально в R2)

1

что WIC не удалось найти класс декодера, который зарегистрирован для типа файла в вашем потоке.

Вот что я бы предложил:

На старом сервере, где он работает, распечатайте значение InputDecoder.GetDecoderInfo (). GetCLSID (), а также, возможно, GetAuthor / GetFriendlyName. Если это один из встроенных CLSID в спискеВот, тогда WIC на вашей новой машине скорее всего сломан. В противном случае вам необходимо выяснить, откуда пришел декодер, который вы используете на старой машине, и установить его на новую машину.

Или просто посмотрите на декодер для любого типа файла, который у вас есть.

Похожие вопросы