【问题标题】:Need advice on solving System.Runtime.InteropServices.COMException (0x88982F72)需要有关解决 System.Runtime.InteropServices.COMException (0x88982F72) 的建议
【发布时间】:2010-12-07 01:52:30
【问题描述】:

在尝试从 ASP.Net 响应流创建 BitmapDecoder 时,我们遇到了这个奇怪的异常。这是引发异常的代码行:

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

以下是正在上传的文件的一些信息:

文件名:bank statement.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)

有人对我们如何防止这种情况发生有任何想法吗?

【问题讨论】:

  • 你试过这个吗:forums.asp.net/p/1219504/2171553.aspx ?
  • 这不是 RPC,COM HRESULT 不同..
  • 另外,它不会每次都发生。一天几次,在 100 次成功上传中。
  • 您不能先将文件本地保存在临时文件夹中,然后在 BitmapDecoder 中使用它。 bitmapdecoder 是你的组件吗?
  • 抱歉,我在发布后看到了您的回复。是否有可能有时在上传完成之前关闭/中断流,因此它会在中途中断读取。你怎么看?

标签: c# asp.net wpf com


【解决方案1】:

0x88982f72 实际上是 WINCODEC_ERR_STREAMREAD(来自Codec Error Codes),确实是“无法从流中读取”。

如果流来自“狂野世界”(又名:互联网),这可能意味着它......只是垃圾或黑客试验。如果您自己的测试工作正常并且没有出现此问题,我认为只处理此特定错误并优雅地失败是公平的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-11
    • 2011-01-26
    • 1970-01-01
    • 2010-09-22
    • 1970-01-01
    • 2011-12-11
    • 1970-01-01
    相关资源
    最近更新 更多