Pytanie w sprawie wic, windows-server-2008, vb.net, .net, windows-server-2008-r2 – WIC CreateDecoderFromStream zwracający 0x88982F50 po migracji serwera

3

Mam procedurę generowania miniatur, którą stworzyłem za pomocą WIC dla aplikacji .NET. Przez ostatni rok działało dobrze, ale właśnie przeszliśmy na nowy serwer.

Starym serwerem był W2k8 R2 Enterprise SP1 Nowy serwer to W2k8 Standard SP1

Oto kod, który zawodzi

    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

Sprawdziłem, a dane obrazu są poprawnymi danymi. Dokładnie ten sam obraz działa poprawnie, jeśli uruchomię kod na starym serwerze.

Twoja odpowiedź

2   odpowiedź
1

To WINCODEC_ERR_COMPONENTNOTFOUND. Oznacza to, że WIC nie mógł znaleźć klasy dekodera zarejestrowanej dla typu pliku w strumieniu.

Oto co zasugerowałbym:

Na starym serwerze, na którym działa, wydrukuj wartość InputDecoder.GetDecoderInfo (). GetCLSID (), a może także GetAuthor / GetFriendlyName. Jeśli jest to jeden z wbudowanych identyfikatorów CLSIDtutaj, wtedy WIC na twojej nowej maszynie jest prawdopodobnie zepsuty. W przeciwnym razie musisz dowiedzieć się, skąd pochodzi dekoder, którego używasz na starej maszynie, i zainstalować go na nowym komputerze.

Lub po prostu rozejrzyj się za dekoderem dla dowolnego typu pliku.

1

Problem polegał na tym, że korzystałem z dodatku SP1 dla serwera 2008. Jak opisano wto pytanie, musisz zastosować aktualizację platformy do Server 2008 (po SP2) przed udostępnieniem WIC. (Jest dostępny natywnie w R2)

Powiązane pytania