파일을 출력하는 과정 중 Response.End()에서 발생된 HttpException
영문의 경우는 아래와 같이 출력됩니다.
Exception Type:System.Web.HttpException
The remote host closed the connection. The error code is 0x80072746.
위치: System.Web.Hosting.IIS7WorkerRequest.RaiseCommunicationError(Int32 result, Boolean throwOnDisconnect)
위치: System.Web.Hosting.IIS7WorkerRequest.ExplicitFlush()
위치: System.Web.HttpResponse.Flush(Boolean finalFlush)
위치: System.Web.HttpResponse.End()
위치: HPW.Portal.Common.SPWeb.Layouts.MultiFileUpload.MultiDownLoad.Page_Load(Object sender, EventArgs e)
위치: System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
위치: System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
위치: System.Web.UI.Control.OnLoad(EventArgs e)
위치: Microsoft.SharePoint.WebControls.UnsecuredLayoutsPageBase.OnLoad(EventArgs e)
위치: Microsoft.SharePoint.WebControls.LayoutsPageBase.OnLoad(EventArgs e)
위치: System.Web.UI.Control.LoadRecursive()
위치: System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
해결 방법은 아래와 같은 코드로 가능합니다.
if (Response.IsClientConnected) { Response.End(); }
이 녀석이 끊어지는 이유는 아래와 같습니다. (여기를 선택하여 이동)
-
클라이언트 연결이 종료된 경우. Close 메서드가 호출되었거나 클라이언트가 웹 페이지 실행을 중지했거나 다른 페이지로 이동한 경우 연결이 종료될 수 있습니다.
-
요청을 처리 중인 HttpWorkerRequest 개체가 null이거나 HttpWorkerRequest.IsClientConnected 메서드에서 false를 반환하는 경우. 사용자 지정 HttpWorkerRequest 개체가 요청을 처리하는 경우 사용자 지정 기준에 따라HttpWorkerRequest.IsClientConnected 메서드를 설정할 수 있습니다. 예를 들어, 사용자 지정 작업자 요청에서 일정 기간 후에 시간 초과를 강제할 수 있습니다.
이상입니다.