Ale*_*nov 5 iis asp.net-mvc png
我有一个ASP.NET-MVC项目,我需要动态生成一些png图像.这很简单.我只是创建返回FileSreamResult对象的ActionResult.为了生成图像,我使用了System.Drawing中的类,例如Bitmap和Image.在本地计算机和生产服务器上一切正常.但是当生产服务器上的IIS由于不活动而关闭我的应用程序池并再次启动时,图像生成开始失败.
问题在于尝试将图像保存到流中的代码:
var imageStream = new MemoryStream();
bmp.Save(imageStream, ImageFormat.Png);
Run Code Online (Sandbox Code Playgroud)
例外情况是:System.Runtime.InteropServices.ExternalException(0x80004005):GDI +中发生一般错误.所以没有太多帮助.我尝试了不同的解决方案,没有任何帮助 在我找到这个主题System.Drawing的替代品用于ASP.NET之后?
这个主题的主要思想是:
System.Drawing命名空间中的类不支持在Windows或ASP.NET服务中使用.尝试在其中一种应用程序类型中使用这些类可能会产生意外问题,例如服务性能下降和运行时异常.
所以我决定使用WPF类来生成图像.我重写了所有图像生成代码,但现在我在应用程序池重启后又出现了另一个错误.异常: System.Runtime.InteropServices.COMException(0x88982F8A):来自HRESULT的异常:0x88982F8A.当我尝试将PngBitmapEncoder保存为流时会发生这种情况
var stream = new MemoryStream();
encoder.Save(stream);
Run Code Online (Sandbox Code Playgroud)
也许有人遇到过这个问题或者只是有任何想法?
我无法回答您的问题,但如果这只是因为您的应用程序关闭而发生,为什么不将其 Idle 设置为 0(应用程序池 -> 应用程序 -> 高级选项),那么它就不会关闭。
如果您无法得到合适的答案,这可能是最后的手段。
| 归档时间: |
|
| 查看次数: |
574 次 |
| 最近记录: |