일부 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 스트리밍 할 때 어떻게됩니까?