加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – asp.net中的奇怪图像生成错误

发布时间:2020-12-16 07:45:08 所属栏目:asp.Net 来源:网络整理
导读:我有一个ASP.NET-MVC项目,我需要动态生成一些png图像.这很简单.我只是创建返回FileSreamResult对象的ActionResult.为了生成图像,我使用了System.Drawing中的类,例如Bitmap和 Image.在本地计算机和生产服务器上一切正常.但是当生产服务器上的IIS由于不活动而
我有一个ASP.NET-MVC项目,我需要动态生成一些png图像.这很简单.我只是创建返回FileSreamResult对象的ActionResult.为了生成图像,我使用了System.Drawing中的类,例如Bitmap和 Image.在本地计算机和生产服务器上一切正常.但是当生产服务器上的IIS由于不活动而关闭我的应用程序池并再次启动时,图像生成开始失败.

问题在于尝试将图像保存到流中的代码:

var imageStream = new MemoryStream();
  bmp.Save(imageStream,ImageFormat.Png);

例外情况是:System.Runtime.InteropServices.ExternalException(0x80004005):GDI中发生一般错误.所以没有太多帮助.我尝试了不同的解决方案,没有任何帮助我找到这个话题后Alternatives to System.Drawing for use with ASP.NET?

这个主题的主要思想是:

Classes within the System.Drawing namespace are not supported for use within a Windows or ASP.NET service. Attempting to use these classes from within one of these application types may produce unexpected problems,such as diminished service performance and run-time exceptions.

所以我决定使用WPF类来生成图像.我重写了所有图像生成代码,但现在我在应用程序池重启后又出现了另一个错误.例外:
System.Runtime.InteropServices.COMException(0x88982F8A):来自HRESULT的异常:0x88982F8A.当我尝试将PngBitmapEncoder保存为流时会发生这种情况

var stream = new MemoryStream();
encoder.Save(stream);

也许有人遇到过这个问题或者只是有任何想法?

解决方法

这是一个令人不满意的答案……

我第一次部署新的图像生成功能时遇到了同样的错误.

我停止了相应的应用程序池,重新启动它,它工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读