2012-03-09 7 views
5

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?

Respuesta

0

No puedo responder a su pregunta como tal, pero si esto solo ocurre porque su aplicación se apaga, ¿por qué no establecer su inactividad en 0 (grupo de aplicaciones -> Aplicación -> Opciones avanzadas), entonces no se apagará.

Puede ser un último recurso si no puede obtener una respuesta adecuada.

1

Aquí es una respuesta insatisfactoria ...

que estaba recibiendo el mismo error cuando por primera vez desplegado mi nueva funcionalidad de generación de imágenes.

Paré el grupo de aplicaciones correspondiente, lo reinicié nuevamente y funcionó.