Нужен совет по решению System.Runtime.InteropServices.COMException (0x88982F72) - PullRequest
0 голосов
/ 06 декабря 2010

Мы получаем это странное исключение при попытке создать BitmapDecoder из потока ответов ASP.Net.Это строка кода, которая выдает исключение:

BitmapDecoder dec = BitmapDecoder.Create(
    Request.Files[0].InputStream, 
    BitmapCreateOptions.PreservePixelFormat, 
    BitmapCacheOption.OnLoad);

Вот некоторая информация о загружаемом файле:

Имя файла: bank account.jpg, Длина содержимого: 266041,MIME-тип: image / jpeg

Это трассировка стека исключений:

System.IO.IOException: Cannot read from the stream. ---> 
    System.Runtime.InteropServices.COMException (0x88982F72): 
    Exception from HRESULT: 0x88982F72
--- End of inner exception stack trace ---
at System.Windows.Media.Imaging.BitmapDecoder.SetupDecoderFromUriOrStream(Uri uri, Stream stream, BitmapCacheOption cacheOption, Guid& clsId, Boolean& isOriginalWritable, Stream& uriStream, UnmanagedMemoryStream& unmanagedMemoryStream, SafeFileHandle& safeFilehandle)
at System.Windows.Media.Imaging.BitmapDecoder.CreateFromUriOrStream(Uri baseUri, Uri uri, Stream stream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, RequestCachePolicy uriCachePolicy, Boolean insertInDecoderCache)
at System.Windows.Media.Imaging.BitmapDecoder.Create(Stream bitmapStream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption)

У кого-нибудь есть идеи о том, как мы можем предотвратить это?

1 Ответ

1 голос
/ 06 декабря 2010

0x88982f72 на самом деле является WINCODEC_ERR_STREAMREAD (из Коды ошибок кодека ), что на самом деле означает «Невозможно прочитать из потока».

Если поток поступает из «дикого мира» (ака: Интернет), это может означать, что это ... просто мусор или предварительный взлом.Если ваши собственные тесты работают нормально и не демонстрируют эту проблему, я думаю, что будет справедливо просто обработать эту конкретную ошибку и выполнить ее изящно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...