ASP.NET WebForm 에서 대용량 다운로드 시 주의할 점

먼저 만악의 근원 ViewState를 해제해야 한다.

<%@ Page Language="C#" AutoEventWireup="true" EnableViewState="false" %>

EnableViewState 속성을 false 로 설정하면 된다.
그럼 끝.

그리고 WebForm은 대용량 다운로드 시 잼병이므로 Response.OutputBuffer = false 주는 것이 좋다.
그럼 Transfer-Encoding: chunked 헤더가 발생하여 용량은 알 수 없지만 버퍼를 재때(또는 Flush 써서) 클라이언트에 쏴버리므로 메모리를 아낄 수 있다.
아니면 이보다 더 가벼운 REST Server를 구성하는 것이 좋다. 설령 ASP.NET MVC던 Nancy 던… 그들이 더 가벼우니까.

파일 용량 보여주면서 대용량 다운받는 방법? 메모리 아끼는 효율적인 방법은 Websocket 이다. HTTP는 답 없다.
다운로더 앱이 있는 이유이기도 하다.

근데 aspx로 백날 지랄해봐야 진리는 IHttpHandler 다. 다 필요없고 HTTP 처리가 매핑해라. 존나 빠르고 편하다.

composite / 2015년 6월 9일 / Piss Development
태그:,

답글 남기기

Your email address will not be published / Required fields are marked *