Asp.net mvc asp.net中的奇怪图像生成错误
我有一个ASP.NET-MVC项目,需要动态生成一些png图像。那很容易。我只是创建返回FileStreamResult对象的ActionResult。为了生成图像,我使用了System.Drawing中的类,如位图和图像。在本地机器和生产服务器上一切正常。但当生产服务器上的IIS由于不活动而关闭应用程序池并再次启动时,映像生成开始失败 尝试将图像保存到流的代码中存在问题:Asp.net mvc asp.net中的奇怪图像生成错误,asp.net-mvc,iis,png,Asp.net Mvc,Iis,Png,我有一个ASP.NET-MVC项目,需要动态生成一些png图像。那很容易。我只是创建返回FileStreamResult对象的ActionResult。为了生成图像,我使用了System.Drawing中的类,如位图和图像。在本地机器和生产服务器上一切正常。但当生产服务器上的IIS由于不活动而关闭应用程序池并再次启动时,映像生成开始失败 尝试将图像保存到流的代码中存在问题: var imageStream = new MemoryStream(); bmp.Save(imageStrea
var imageStream = new MemoryStream();
bmp.Save(imageStream, ImageFormat.Png);
异常为:System.Runtime.InteropServices.ExternalException(0x80004005):GDI+中发生一般错误。所以没有什么帮助。我尝试了不同的解决方案,但毫无帮助。在我找到这个话题之后
本主题的主要思想是:
Windows或ASP.NET服务中不支持System.Drawing命名空间中的类。试图在这些应用程序类型中使用这些类可能会产生意外问题,例如服务性能降低和运行时异常
所以我决定使用WPF类来生成图像。我重写了所有图像生成代码,但现在在应用程序池重新启动后,我又遇到了另一个错误。例外情况:
System.Runtime.InteropServices.COMException(0x88982F8A):来自HRESULT的异常:0x88982F8A。当我尝试将PngBitmapEncoder保存到流时会发生这种情况
var stream = new MemoryStream();
encoder.Save(stream);
可能有人遇到过这个问题或者有什么想法?我无法回答您的问题,但是如果这只是因为您的应用程序关闭而发生,为什么不将其空闲设置为0(应用程序池->应用程序->高级选项),那么它就不会关闭
如果你找不到合适的答案,这可能是最后的选择。这里有一个不满意的答案 当我第一次部署新的映像生成功能时,我遇到了相同的错误 我停止了相应的应用程序池,重新启动它,然后它就工作了