Tengo un proyecto ASP.NET-MVC donde necesito generar dinámicamente algunas imágenes png. Eso es fácil. Solo creo ActionResult que devuelve el objeto FileSreamResult. Para generar imágenes utilicé clases de System.Drawing como Bitmap e Image. Todo funciona bien en la máquina local y en el servidor de producción. Pero cuando IIS en el servidor de producción apaga mi grupo de aplicaciones debido a la inactividad y lo reinicia, la generación de imágenes comienza a fallar.Extraño error de generación de imágenes en asp.net
El problema era que en el código que trata de salvar la imagen de la corriente:
var imageStream = new MemoryStream();
bmp.Save(imageStream, ImageFormat.Png);
Excepción es: System.Runtime.InteropServices.ExternalException (0x80004005): Se ha producido un error genérico en GDI +. Entonces no hay mucha ayuda. Intenté con soluciones diferentes y nada me ayudó. Después de que he encontrado este tema Alternatives to System.Drawing for use with ASP.NET?
La idea principal de este tema es:
Clases dentro del espacio de nombres System.Drawing no son compatibles para su uso dentro de un servicio de Windows o ASP.NET. Intentar utilizar estas clases desde uno de estos tipos de aplicaciones puede producir problemas inesperados, como una disminución en el rendimiento del servicio y excepciones en el tiempo de ejecución.
Así que decidí usar clases de WPF para generar imágenes. Reescribí todos los códigos de generación de imágenes, pero ahora aparece otro error después de reiniciar el grupo de aplicaciones. Excepción: System.Runtime.InteropServices.COMException (0x88982F8A): Excepción de HRESULT: 0x88982F8A. Esto sucede cuando intento para salvar mi PngBitmapEncoder de flujo de
var stream = new MemoryStream();
encoder.Save(stream);
Tal vez alguien encontrado con este problema, o simplemente tiene alguna idea?