2012-03-09 2 views
5

일부 PNG 이미지를 동적으로 생성해야하는 ASP.NET-MVC 프로젝트가 있습니다. 쉽습니다. 나는 FileSreamResult 객체를 리턴하는 ActionResult를 생성한다. 이미지를 생성하기 위해 나는 System.Drawing에서 비트 맵과 이미지 같은 클래스를 사용했다. 모든 것이 로컬 컴퓨터와 프로덕션 서버에서 잘 작동합니다. 그러나 프로덕션 서버의 IIS가 비활성으로 인해 응용 프로그램 풀을 종료하고 다시 시작하면 이미지 생성이 실패하기 시작합니다.asp.net에서 이상한 이미지 생성 오류가 발생했습니다.

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

예외는 : System.Runtime.InteropServices.ExternalException은 (0X80004005) : 일반 오류 GDI + 발생

문제가 스트림에 이미지를 저장하려고 코드였다. 그래서 많은 도움이되지 않습니다. 나는 다른 해결책을 시도하고 아무 것도 도움이되지 않는다. 나는이 주제를 발견 한 후 Alternatives to System.Drawing for use with ASP.NET?

이 주제의 주요 아이디어는 : System.Drawing 네임 스페이스 내에서

클래스는 Windows 또는 ASP.NET 서비스 내에서 사용이 지원되지 않습니다. 이러한 응용 프로그램 유형 중 하나에서이 클래스를 사용하려고 시도하면 서비스 성능 저하 및 런타임 예외와 같은 예기치 않은 문제가 발생할 수 있습니다.

그래서 이미지를 생성하기 위해 WPF 클래스를 사용하기로 결정했습니다. 모든 이미지 생성 코드를 다시 작성했지만 이제 앱 풀을 다시 시작한 후에 다른 오류가 발생합니다. 예외 : System.Runtime.InteropServices.COMException (0x88982F8A) : HRESULT 예외 : 0x88982F8A.

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

어쩌면 사람이 문제가 발생하거나 아이디어가 내가 저장하려고 내 PngBitmapEncoder 스트리밍 할 때 어떻게됩니까?

답변

0

귀하의 질문에 답변 할 수 없지만 앱이 종료되어서 만 발생하는 경우, 유휴 상태를 0 (앱 풀 -> 앱 -> 고급 옵션)으로 설정하지 않은 이유는 종료되지 않습니다.

적합한 답을 얻을 수없는 경우 최후의 수단이 될 수 있습니다.

1

는 여기에 만족스럽지 못한 대답 ...

내가 처음 내 새로운 이미지 생성 기능을 배포 할 때이 같은 오류가 발생했다.

해당 응용 프로그램 풀을 중지했다가 다시 시작했다가 작동했습니다.

관련 문제